一个分支中的更改显示在master中

时间:2012-08-05 03:31:28

标签: git

我是git的新手,我有这个奇怪的事情。我结帐到一个分支,做一些更改,然后我结帐主人,我在另一个分支的变化是在那里。我不确定我是否误解了这个概念或者我做错了什么。 msysgit的git版本是1.7.11-preview20120710。

这是我做的一系列命令,我删除了mybranch中的文件text.txt,然后在master中删除了文件。

db@DB-PC /f/Projects/Controls (master) 
$ ls
AcNumericSingleToolStripTextBox.vb  NumericSingleTextBox.vb

db@DB-PC /f/Projects/Controls (master)
$ touch text.txt

db@DB-PC /f/Projects/Controls (master)
$ git checkout -b mybranch
Switched to a new branch 'mybranch'

db@DB-PC /f/Projects/Controls (mybranch)
$ ls
AcNumericSingleToolStripTextBox.vb  NumericSingleTextBox.vb  text.txt

db@DB-PC /f/Projects/Controls (mybranch)
$ rm text.txt

db@DB-PC /f/Projects/Controls (mybranch)
$ ls
AcNumericSingleToolStripTextBox.vb  NumericSingleTextBox.vb

db@DB-PC /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.

db@DB-PC /f/Projects/Controls (master)
$ ls
AcNumericSingleToolStripTextBox.vb  NumericSingleTextBox.vb

Text.txt不再在master中了。

编辑软件仓库

在创建示例text.txt之前我遇到了问题。现在我在mybranch中将AcNumericSingleToolStripTextBox.vb重命名为NumericSingleToolStripTextBox.vb,我可以看到master中的更改:

db@DB-PC /f/Projects/Controls (master)
$ ls
AcNumericSingleToolStripTextBox.vb  NumericSingleTextBox.vb

db@DB-PC /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)

db@DB-PC /f/Projects/Controls (master)
$ git checkout -b mybranch
Switched to a new branch 'mybranch'

db@DB-PC /f/Projects/Controls (mybranch)
$ ls
AcNumericSingleToolStripTextBox.vb  NumericSingleTextBox.vb

db@DB-PC /f/Projects/Controls (mybranch)
$ mv AcNumericSingleToolStripTextBox.vb NumericSingleToolStripTextBox.vb

db@DB-PC /f/Projects/Controls (mybranch)
$ ls
NumericSingleTextBox.vb  NumericSingleToolStripTextBox.vb

db@DB-PC /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.

db@DB-PC /f/Projects/Controls (master)
$ ls
NumericSingleTextBox.vb  NumericSingleToolStripTextBox.vb 

1 个答案:

答案 0 :(得分:4)

在你的例子中,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。