2012-03-08 109 views
3

我与git一个新手,我也明白摘樱桃如何git的作品,但这里是我的问题:Git的摘樱桃

最近,有人在我的球队,在主变的目录结构,但不是另一个分支中的目录结构。

现在,当我在分支中对我的代码进行更改时,我想将它们(樱桃树)选为主。这很好,直到主控和分支中的目录结构都相同。

TOPDIR /一些/子目录/文件 - 主
TOPDIR /一些/其它/子目录/文件 - 分支

文件,其变动将被带入主是一样的,但不是目录。结构上,它包含在当我试着做了樱桃采摘通常的方式,我得到的线沿线的一个错误:

git的结帐主 git的樱桃挑选提交 错误:pathspec TOPDIR /一些/其他/ subdir /文件不存在

现在,什么是在这种情况下去樱桃采摘的最好方法是什么?任何指针都非常感谢。


好的。我刚刚注意到,在相同的情况下,当我做一个樱桃选择时,git足够聪明,可以从提交中正确选择一个文件,但不能识别其他文件。

要使用我在原始文章中提到的相同示例:在相同的提交中,top35/top/subdir/file1, topDir/some/subdir1/file2。

我去掌握,其中有 “文件1” 和 “文件2”,只是在不同的目录结构: TOPDIR/src目录/一些/子目录/文件1 TOPDIR/src目录/一些/ subdir1 /文件2。现在,如果我做了一个樱桃选择,git足够聪明,能够接收file1中的更改​​,即使这是在不同的目录结构中,但不会为file2选择更改。任何指针?如果有人希望我更清楚,我会很乐意。

所以,我做了什么要解决的问题是做一个摘樱桃,手动更改一个混帐并没有起色,而“git的承诺-C。

+0

嗯,这是一个粗略的,是你的目录结构改变的原因吗?新的目录结构是你想要保留在master中还是最终是你想要的主目录结构? – 2012-03-08 19:31:27

+0

感谢您的快速反应。不知道原因,我不确定如果我要求一个答案,是否会得到更好的答复。是的,主人是永久的。 – 2012-03-08 19:32:32

+0

您是否尝试过樱桃采摘提交文件的位置被更改,然后樱桃采摘所需的更改? – Carl 2012-03-08 19:54:32

回答

5

快乐帮:)如果一个在主人将是永久的方式,我会解决的课题分支以匹配主文件结构,提交到分支,* 然后合并将更改主,不摘樱桃。作为

git checkout branch 
mv other/subdir/file subdir/file 
git status 
// git add and git rm to get the commit proper 
git commit -m "fixing file struct" 
git checkout master 
git merge branch 

真的,这取决于文件的用例是什么,以及你想在主分支中做什么,这更像是你的c公司的具体问题,而不是一个技术问题,任何人都可以在这里回答;)

+0

谢谢。我想,我应该尝试一下carleeto的建议,如果这不起作用,你在这里推荐的是要走的路。我会标记这个答案,但如果其他人有任何其他有用的建议,请这样做,因为这似乎不是很多人遇到的情况。 – 2012-03-08 20:01:40

+0

Carleeto的建议当然是一个不错的选择,但前提是您要将主题分支中的文件目录结构移动到主分支中。如果你希望文件能够真正替代主文件中的文件(这是我想到的,当我看到愿意选择樱桃时),我会建议不要这样做。出于好奇,我们正在谈论的是什么类型的文件?这是一个代码项目吗?静态文档文件? – 2012-03-08 20:04:57

+0

是的,这是一个代码项目。有问题的文件是C++文件。 – 2012-03-08 22:00:16

0

假设我们有A,B,C,D,E & F节点。用户当前在F节点上,并且想要用C节点通过使用类型git命令如Git Cherry-Pick C那么该命令将C节点应用到F节点。