5

我正在尝试在 git 中挑选一个提交,它添加了一堆文件,但也修改了一个在我的分支中尚不存在的文件。

存在冲突,要添加的文件都已暂存,并且在提交中更改但在分支中尚不存在的文件未暂存,并列为:

deleted by us: app/changed_file.rb

changed_file.rb如果我只是提交暂存文件,当最终合并到分支时会导致问题吗?

4

2 回答 2

3

https://www.kernel.org/pub/software/scm/git/docs/git-cherry-pick.html

Cherry-pick 创建的提交,因此如果您省略了分支中不存在但存在于分支中的文件,那么您最终将不会合并。

mkdir test && cd test && git init && touch foo.txt
git add foo.txt && git commit -m "Init repo"
git branch test && git checkout test && vi foo.txt 
git add foo.txt && git commit -m "Changed foo on branch test"
git checkout master && touch bar.txt
git add bar.txt && git commit -m "Create bar.txt"
vi bar.txt 
touch baz.txt && git add . && git commit -m "Will be cherry picked"
git checkout test && git cherry-pick bfd1b58
git rm bar.txt && git commit
git checkout master && git merge test

结果是lsbar.txt baz.txt foo.txt

于 2013-03-28T23:33:56.483 回答
1

如果不需要,您可以简单地从您正在挑选的提交中删除该文件...

git rm 文件名

git 提交

-在这里确保您的提交消息包含更改 ID:作为最后一段的行

git push origin HEAD:refs/for/branch_name

这样您就不会遇到任何冲突,并且下次合并时会更容易..

于 2013-05-14T13:10:44.257 回答