2011-03-12 57 views
2

我正在与git合作,对于与分支机构合作还相当新,而且我遇到了一个真正奇怪的问题。我不确定说实话怎么回事。Git奇怪与分支机构之间的文件夹

我创建一个git仓库,然后添加一个自述文件,并提交更改。

git init 
git touch README 
git add README 
git commit -m 'add readme' 

从那里我现在有一个主分支。我这样做:

git branch development 
git checkout development 

从那里我添加了3个文件夹,因为我第一次为源代码控制添加了一个旧项目。这些文件夹是:

Theme-arm 
FrontEnd 
ControlPanel 

我的目标是将这些文件添加到开发分支并没有其他分支。然后我做

git add * 
git commit -m 'initial commmit' 

这一切都很好。但是当我切换回主用

git checkout master 

的问题,什么是导致我的困惑,是ControlPanel控制和前端,而不是主题臂现在处于主为好。我不想让他们在那里。

我做错了什么或误解git的工作方式?

+0

你为什么说他们是高手?他们在工作目录中检出主分支时并不意味着它们被主人跟踪。尝试“混帐状态”,你可能会看到他们列为未跟踪。 – 2011-03-13 11:50:54

回答

2

检查ControlPanel和FrontEnd是否在开发分支中执行git add *时未放在版本控制下的文件(您可以检查这些目录的内容在您的主分支中)。

+1

澄清:如果您有未跟踪的文件(包括被忽略的文件,可能是构建产品),它们将在切换分支时被单独保留。当您将主分支签出时,文件在那里的事实并不意味着它们实际上在主分支上进行了跟踪。尝试用'git show master:ControlPanel'来查看哪个主机实际上在那里跟踪 - 还有'git status'来查看是否有未跟踪的文件 - 你可能会在该部分看到'ControlPanel /'。 – Cascabel 2011-03-13 05:38:30

+0

这是答案的一部分,所以我会将其标记为答案并完成我的结论,这是一个被删除的答案。基本上,由于文件夹中没有任何文件,它自动不会跟踪它们,因为git不支持文件夹。如果我在文件夹中有东西,那么它会跟踪这些文件,并且文件夹会“消失”。最后,当我将开发分支合并到主分支中时,它变成了一个有争议的问题,在这两种情况下,这些空文件夹都存在,我无法分辨其中的差异。 – percent20 2011-03-22 08:55:28