2013-03-04 111 views
1

我是新來的混帳和學習分支和合並。git分支顯示相同的內容

當我執行以下操作:

git的結帳-b測試

一個新的分支被創建,我切換到該分支。 當我:

的vim testfile的

,並輸入一些文字並保存,按預期的方式創建testfile的。 然而,當我然後通過以下命令改變到另一個分支:

GIT中結帳主

GIT中結帳unrelatedBranch

我發現testfile的也存在於這些具有相同內容的其他分支中。

這種行爲與我對分支工作原理的理解不一致。幾個互聯網資源表明,我在這裏使用的命令是需要的。

有人可以告訴我我做錯了什麼或爲什麼這是所需的行爲?

+4

你承諾切換到另一個分支前testfile的變化?如果不是,則不在任何分支中,但*在您的工作目錄中。 – codelark 2013-03-04 19:15:34

+0

您沒有將新文件'testfile'提交給本地倉庫。因此,當您簽出'master'或'unrelatedBranch'時,未提交的更改也會簽出。因此你在那裏看到'testfile'。 – Bhaskar 2013-03-04 19:24:28

回答

3

看起來像testfile不受版本控制。

先試着運行git status先查看是否列出testfile根據Untracked files

實施例:

git status 
# On branch master 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# testfile 
no changes added to commit (use "git add" and/or "git commit -a") 

如果看到testfileuntracked files下所列象在上面的例子中,則需要使用git add命令將其添加到版本控制。

git add testfile 

最後,不要忘了提交使用git commit

2

這可能是因爲文件沒有被跟蹤。

嘗試做:git add testfile將其添加到新的分支。

3

testfile未跟蹤,您的更改未提交。

因此,在所有分支上,testfile不是。它在沒有分支。 Git甚至不知道它在那裏,所以它在切換分支時不能將其清除出工作目錄。這是有幫助的(如果出乎意料的)行爲,因爲你討厭將未跟蹤的文件混在一起。

務必:

​​

,你會看到testfile將消失。

+0

如果你沒有完成測試文件,你會怎麼做,因此不準備提交,但必須在另一個分支上工作?藏起來? – Norfeldt 2016-07-18 18:17:42