我是git的新手,我了解git cherry-pick的工作原理,但这是我的问题:
最近,我的团队中有人在主分支中更改了目录结构,但未更改另一个分支的目录结构。
现在,当我在分支中更改代码时,我想将它们(cherry-pick)带入主分支。在主分支和分支中的目录结构相同时,这很好处理。
topDir/some/subdir/file -- 主分支 topDir/some/other/subdir/file -- 分支
文件(其更改应带入主分支)相同,但不是包含它的目录结构。当我尝试按照平常的方式进行cherry-pick时,会出现以下错误:
git checkout master git cherry-pick commit error: pathspec topDir/some/other/subdir/file does not exist
那么,在这种情况下进行cherry-pick的最佳方法是什么?非常感谢您提供任何指针。
好的。我刚刚注意到,在相同的情况下,当我进行cherry-pick时,Git实际上足够聪明,可以从提交中正确选择其中一个文件,但不会识别另一个文件。
使用我在原始帖子中提到的相同示例: 在同一次提交中, topDir/some/subdir/file1, topDir/some/subdir1/file2。
我进入拥有“file1”和“file2”的主分支,只是在不同的目录结构中: topDir/src/some/subdir/file1 topDir/src/some/subdir1/file2。
现在,如果我进行cherry-pick,Git足够聪明,可以选择文件1的更改,即使这个文件在不同的目录结构中,但不会选择文件2的更改。有任何指针吗?如果有人想让我更清楚,我将很高兴地做到。
所以,我为了解决问题而做的事情是进行cherry-pick,手动更改Git没有捕捉到的那个文件,然后“git commit -C”。
最近,我的团队中有人在主分支中更改了目录结构,但未更改另一个分支的目录结构。
现在,当我在分支中更改代码时,我想将它们(cherry-pick)带入主分支。在主分支和分支中的目录结构相同时,这很好处理。
topDir/some/subdir/file -- 主分支 topDir/some/other/subdir/file -- 分支
文件(其更改应带入主分支)相同,但不是包含它的目录结构。当我尝试按照平常的方式进行cherry-pick时,会出现以下错误:
git checkout master git cherry-pick commit error: pathspec topDir/some/other/subdir/file does not exist
那么,在这种情况下进行cherry-pick的最佳方法是什么?非常感谢您提供任何指针。
好的。我刚刚注意到,在相同的情况下,当我进行cherry-pick时,Git实际上足够聪明,可以从提交中正确选择其中一个文件,但不会识别另一个文件。
使用我在原始帖子中提到的相同示例: 在同一次提交中, topDir/some/subdir/file1, topDir/some/subdir1/file2。
我进入拥有“file1”和“file2”的主分支,只是在不同的目录结构中: topDir/src/some/subdir/file1 topDir/src/some/subdir1/file2。
现在,如果我进行cherry-pick,Git足够聪明,可以选择文件1的更改,即使这个文件在不同的目录结构中,但不会选择文件2的更改。有任何指针吗?如果有人想让我更清楚,我将很高兴地做到。
所以,我为了解决问题而做的事情是进行cherry-pick,手动更改Git没有捕捉到的那个文件,然后“git commit -C”。