2016-12-15 88 views
1

我一直在GIT工作了3年,但不记得面临这个问题。 我已经创建了一个新的存储库,其中每个分支都有不同的代码。文件夹结构在外层大致相同,但每个分支有一些子文件夹和几个文件(相当常见)。转换分支带来以前分支的提交文件夹和文件

我有一个空的分支,我用它来创建新的客户分支。我从这里创建了'n'个客户分支。对于1st Customer分支,我将代码从我的本地复制到第1分支。致力于推动变革。现在,当我检出第二个分支时(理想情况下应该是空的),但第一个分支代码保留为未跟踪文件。在将新代码复制到每个分支之前,我正在做一个清洁-df。

为什么我会将承诺从上一次使用的分支更改为我的新分支作为未跟踪文件?

Git版本 - 1.7

+0

Git版本?这确实不是预期的行为。 – 1615903

+0

是的..我一直在为所有分支重复这一点。行为是恒定的。版本 - 1.7.11.4 – user2552451

+0

您检出的第二个分支的来源是什么? –

回答

0

只要你承诺,推动了第一支,这是master,你所定义的出发点是在你的资料库的内容。每一个在此之后的分支都将与这个起点相关。所以当你跑git clean -df你没有回到“空”,你只是删除所有文件被跟踪。当你粘贴你的第二个分支文件时,所有东西都显示为未被跟踪。

我认为这里最合乎逻辑的意义是用一个分支来初始化你的新存储库,这个分支是所有客户分支的共同祖先。在此之后,您可以为特定客户打开所有文件,创建分支并将其推送到新的存储库。

+0

我的第一个分支不是主人。硕士是最初的分支。我从主人创建了所有客户分支。因此,在添加代码之前,所有分支最初都是空的, – user2552451

+0

是的,但是'master'在哪个存储库中,旧的还是新的?你知道Git中的每个分支,除了可能在'master'中首先提交的东西,只是一个相对于其他分支/提交的指针吗? –

+0

@TimBiegeleisen(孤儿分支除外) - OP描述的行为会发生。 – 1615903