尽管我没有合并,为什么更改应用于master分支

时间:2011-12-30 10:15:09

标签: git github

我最初是在master分支中,然后我创建了一个development分支并使用该分支:

git branch development
git checkout development

之后,我开始在development分支上的项目中进行更改。

然后,我承诺并推动:

git push origin development,所以,我创建了一个远程开发分支。

最后,我回到master分支:

git checkout master不合并development分支所做的更改)

然后:

git pull origin master(以便在master分支上获得其他开发人员的更改)

但是,令人惊讶development分支上的所有更改都应用于master分支!! 为什么?没有在我回到git merge development分支后运行命令master,为什么更改应用于我的master分支??

正如已经发生的那样,我现在如何将master分支恢复为,而不是来自development分支的更改?

2 个答案:

答案 0 :(得分:0)

也许您编辑过未跟踪的文件或其他内容? 没有更多信息,很难说。

答案 1 :(得分:0)

  

git log中,我看到一位开发人员“合并远程跟踪分支'origin / master'”可能是原因吗?

是的,这是原因,而您的git pull origin master会:

  • 获取origin/master的内容(已包含与origin/development合并的内容)
  • 将其与您的本地主分支合并(快进合并)

考虑到已经克隆了origin/master,我不建议在此时更改其历史记录。所以没有'git reset'。

如果您需要在合并之前继续从主设备上工作,只需从git log获取正确的SHA1并且:

git checkout -b my_new_branch right_SHA1

您可以在合并之前的master HEAD开始新的分支。