【发布时间】:2014-04-09 14:17:16
【问题描述】:
我在将我的 development 分支代码合并到 master 时遇到了一些冲突,并决定创建一个集成分支。我做了 cherry-pick 从开发分支到集成分支的所有必需提交。
现在,当我将更改提交到集成分支时,它会将所有合并的(使用cherry-pick)视为新提交。我对此很好。但是在合并之后,当我比较 development 和 Integration 分支时,File changed 的差异是相同的。
有没有人遇到过类似的问题。谢谢
这是我在该场景中执行的步骤,我在本地开发分支中创建了一个文件,然后切换到集成分支并使用cherry-picked 合并开发分支中的提交。本地分支 git diff 集成...开发后没有显示任何差异,这很好...但是在 github 上,当我比较开发和集成分支时,文件更改仍然显示。当有很多我挑选的提交时,我发现很难看到哪些提交被挑选了。
git status
# On branch master
nothing to commit, working directory clean
git checkout -b development
Switched to a new branch 'development'
git diff master..development
vim test_cherry_pick.txt
git status
# On branch development
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# test_cherry_pick.txt
nothing added to commit but untracked files present (use "git add" to track)
git add test_cherry_pick.txt
git commit
[development 0b88adc] Added temp file to test cherry_pick
1 file changed, 1 insertion(+)
create mode 100644 test_cherry_pick.txt
git diff master..development
diff --git a/test_cherry_pick.txt b/test_cherry_pick.txt
new file mode 100644
index 0000000..d7b8e14
--- /dev/null
+++ b/test_cherry_pick.txt
@@ -0,0 +1 @@
+This file is to test cherry_pick
git checkout master
Switched to branch 'master'
git checkout -b integration
Switched to a new branch 'integration'
git diff master..integration
git cherry-pick 0b88ad
[integration 297e93b] Added temp file to test cherry_pick
1 file changed, 1 insertion(+)
create mode 100644 test_cherry_pick.txt
git diff development..integration
注意:我使用 GitHub GUI 工具将集成和开发分支发布到 origin。
【问题讨论】:
-
您能否在类似于
git merge --help或git rebase --help中使用的提交图上描述这种情况?您可以为此使用git log --graph。 -
请显示一对提交,您认为原始文件和精选文件的差异不应该相同。 Cherry-picking 应该应用相同的更改,所以很难在这里看到你在问什么。
-
你能看看我更新的问题吗?我试图为这个问题创建一个场景。本地分支显示没有差异(好),但是在 github 源中比较时仍然显示差异。