需要一些帮助来理解Git对分支的作用

时间:2014-01-13 14:32:42

标签: git

我已经使用Git几个月了。我终于掌握了提交更改并将更改推送到远程控制器,但我不清楚分支中的文件会发生什么。它们不像我期望的那样工作。

假设我有档案index.html。如果我执行以下步骤,我希望有一个完全空白的index.html文件,但事实并非如此。

  1. master分支机构工作
  2. 创建新分支test
  3. 结帐test
  4. 打开index.html
  5. 将“test”添加到文件
  6. 关闭文件
  7. 再次结帐master分行
  8. 删除分支test
  9. 如果我打开index.htmltest仍在我的档案中。我希望,因为我从未提交对文件的更改,也没有将test分支合并到master分支,我的index.html文件应该恢复到我创建之前的状态test分支。

    我一定在想这个错误。有人可以开导我吗?

2 个答案:

答案 0 :(得分:2)

切换分支时git的行为是保持修改后的文件不变。这样可以轻松切换到分支并将更改提交到目标分支。来自文档

  

保留对工作树中文件的本地修改,以便将它们提交给。 (Link

如果您想让您的工作区域进入当前的主人状态,那么您可以在检查主人后执行以下操作

git reset --hard 

答案 1 :(得分:1)

如果您使用git reset --hard MASTERgit checkout --force重置本地更改,则会恢复“index.html”。这些操作实际上修改了工作树。

否则将保留工作树中的更改。

看一下这个问题,就像“HEAD”,“工作树”等术语:Difference between HEAD / Working Tree / Index in Git