简述
- 我fork了一个repo,并在master分支上对许多文件进行了许多提交。
- 现在我想为“选择”的文件中的所有提交创建一个pull request,以发送回原始repo的作者。例如,我想发送一些改进,但不包括我添加的文件。
- 如果所有提交都被压缩成一个新的提交,我并不在意。
尝试过的方法...
我大部分时间都使用Perforce,现在还在适应git,所以我认为我要么没有意识到我的场景与以下帖子中的场景不匹配,要么我错过了一些对常规git用户很明显但对我不明显的隐含步骤。
- Pull-Request for only certain files/commits
- Using GIT, how can I selectively merge changes from one commit on another 'fork'?
- Cherry picking changes to specific files from a range of commits
- How to git-cherry-pick only changes to certain files?
- How to cherry-pick multiple commits
遇到的问题...
似乎每次我都要挑选,最后得到的是没有任何更改的分支(这很有道理,因为它们已经提交到主分支了,对吧?那么我怎么才能创建一个被提到的“话题分支”呢?)然后我运行了几个我不完全理解的命令(例如git remote add ...
),同时也可能在原始作者的repo和我的forked repo之间交叉使用它们,所以很难确定事情是否无法工作是因为我弄乱了自己的环境。
清理
@Omer的答案非常好。然后我进行了清理
git reset --hard HEAD
进行清理。原作者合并了 PR,我进行了同步:
git remote add upstream git://github.com/<author>/<repo>.git
git pull upstream master