0

在我想要cherry-pick从分支 B 到分支 A 的提交之一中,有四个文件发生了更改,但我只希望该提交中的一个文件位于分支 A。如何在分支 A 上获取该文件?谢谢!

4

3 回答 3

2

这有点麻烦,但这有效:

如果您有更多不想提交的文件,那么您要提交的文件:

git checkout BranchA
git cherry-pick <sha1>
git reset HEAD^
git add <file>
git commit
git reset --hard

如果您有更多文件要提交,则不要:

git checkout BranchA
git cherry-pick --no-commit <sha1>
git reset HEAD <file>
git commit

于 2012-07-13T00:13:46.833 回答
1

一种选择是git show -p COMMIT_HASH:path/to/file > path/to/file获取已更改的文件,然后添加并提交。

于 2012-07-13T00:07:28.107 回答
0

挑选,还原除您想要的文件之外的所有文件,提交修改:

git cherry-pick BranchB
git show --pretty=format: --name-only | grep . | grep -v fileyouwant | xargs git checkout HEAD^ -- 
git commit -a --amend -C HEAD
于 2012-07-13T01:50:37.987 回答