如何使用Git在提交中选择一些文件

时间:2012-07-12 23:55:51

标签: git cherry-pick

在我希望从分支B到分支A的cherry-pick的一个提交中,有四个文件发生了变化,但我只希望该提交中的一个文件位于分支A上。我在分支A上获得该文件?谢谢!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

cherry-pick,还原你想要的所有文件,提交修改:

git cherry-pick BranchB
git show --pretty=format: --name-only | grep . | grep -v fileyouwant | xargs git checkout HEAD^ -- 
git commit -a --amend -C HEAD