2012-08-05 17 views
1

我是新來的混帳,我有這個奇怪的事情。我結賬到一個分行,做一些改變,然後我結賬到主人,我在另一個分行所做的更改也在那裏。我不確定我是否誤解了這個概念,或者我做錯了什麼。 git版本是msysgit的1.7.11-preview20120710。一個分支的變化出現在主人

這是我製作的一系列命令,我刪除了mybranch中的文件text.txt,然後在主文件中也刪除了該文件。

[email protected] /f/Projects/Controls (master) 
$ ls 
AcNumericSingleToolStripTextBox.vb NumericSingleTextBox.vb 

[email protected] /f/Projects/Controls (master) 
$ touch text.txt 

[email protected] /f/Projects/Controls (master) 
$ git checkout -b mybranch 
Switched to a new branch 'mybranch' 

[email protected] /f/Projects/Controls (mybranch) 
$ ls 
AcNumericSingleToolStripTextBox.vb NumericSingleTextBox.vb text.txt 

[email protected] /f/Projects/Controls (mybranch) 
$ rm text.txt 

[email protected] /f/Projects/Controls (mybranch) 
$ ls 
AcNumericSingleToolStripTextBox.vb NumericSingleTextBox.vb 

[email protected] /f/Projects/Controls (mybranch) 
$ git checkout master 
D  Controls/text.txt 
Switched to branch 'master' 
Your branch is ahead of 'origin/master' by 5 commits. 

[email protected] /f/Projects/Controls (master) 
$ ls 
AcNumericSingleToolStripTextBox.vb NumericSingleTextBox.vb 

Text.txt不再是主人了。

編輯爲車廠

我創建的text.txt例如之前出現了問題。現在,我在mybranch改名AcNumericSingleToolStripTextBox.vb到NumericSingleToolStripTextBox.vb,我可以看到在主的變化:

[email protected] /f/Projects/Controls (master) 
$ ls 
AcNumericSingleToolStripTextBox.vb NumericSingleTextBox.vb 

[email protected] /f/Projects/Controls (master) 
$ git status 
# On branch master 
# Your branch is ahead of 'origin/master' by 7 commits. 
# 
nothing to commit (working directory clean) 

[email protected] /f/Projects/Controls (master) 
$ git checkout -b mybranch 
Switched to a new branch 'mybranch' 

[email protected] /f/Projects/Controls (mybranch) 
$ ls 
AcNumericSingleToolStripTextBox.vb NumericSingleTextBox.vb 

[email protected] /f/Projects/Controls (mybranch) 
$ mv AcNumericSingleToolStripTextBox.vb NumericSingleToolStripTextBox.vb 

[email protected] /f/Projects/Controls (mybranch) 
$ ls 
NumericSingleTextBox.vb NumericSingleToolStripTextBox.vb 

[email protected] /f/Projects/Controls (mybranch) 
$ git checkout master 
D  Controls/AcNumericSingleToolStripTextBox.vb 
Switched to branch 'master' 
Your branch is ahead of 'origin/master' by 7 commits. 

[email protected] /f/Projects/Controls (master) 
$ ls 
NumericSingleTextBox.vb NumericSingleToolStripTextBox.vb 

回答

3

在你的榜樣,Git的是從來沒有告訴過跟蹤的text.txt。

在您結算主人之前,您必須讓Git跟蹤它。

$ git add text.txt 

一旦對text.txt進行了分步操作,將該分支提交給分支。

$ git commit -m 'Added text.txt' 

雖然在mybranch上,告訴Git,你想刪除text.txt。通過提交更改將該更改與mybranch相關聯。

$ git rm text.txt 
$ git commit -m 'Removed text.txt' 

退出到主分支後,Git將恢復其狀態和text.txt。

+0

出於好奇(我想我可以自己找到這個),你是否也需要提交該文件或只是添加足夠?另外,我覺得有趣的是,在切換回主模式之後,它輸出這一行:'D Controls/text.txt'就好像它對文件做了什麼。那是什麼? :) – 2012-08-05 03:47:42

+0

是的,更改需要承諾。那輸出也令我感到困惑! – 2012-08-05 04:21:53

+0

我編輯了我的問題,並添加了另一個文件已經跟蹤的例子。它再次發生。 – DanielB 2012-08-05 05:33:57

相關問題