繁体   English   中英

Git并自动将分支与主分支合并

[英]Git & automatically merging branches with master branch

我正在努力使自己更加熟悉git。 我是在这里工作的唯一项目人员,所以我一直都在对master分支进行更改,但是我需要加倍努力,以便更流畅地使用分支。 所以昨天我创建了一个分支(QF1),切换到该分支并开始进行一些更改。 不过,当我切换回主分支时,我注意到了一些事情:它显然切换了分支,并向我显示了以“ M”开头的文件列表(顺便说一句,尽管下面的输出显示文件已暂存,在我执行我的第一个“ git checkout master”时,它们还没有。 因此,在进行了一些研究之后,我发现Ms意味着git将我在QF1分支中所做的更改合并到了master中。 我不希望这样的事情发生。 我对此仍然有点迷糊,但我正在努力通过git-scm.com更好地了解它。 我以为切换分支将把主数据库的内容副本拉回到我的工作目录中,但是我的编辑器没有告诉我这已经发生了(gvim)。

  1. 我不希望这种情况再次发生。 如果工作目录中有尚未提交的更改文件或至少未添加到分支索引的更改文件,我可以设置git告诉它不要切​​换分支吗?
  2. 我是否需要在此处使用“ git reset”将我的master分支指向我对master所做的最后一次提交? 我在这里没有提交任何内容,只是做了一个“ git add”。

     $ git status # On branch QF1 # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: AuthNotifyResponse.cpp # modified: AuthNotifyResponse.h # modified: DataElementsTransactionResponse.cpp # modified: DataElementsTransactionResponse.h # modified: TransactionSession.cpp # modified: authNotifyResponse.xsd # modified: xch.h # $ git checkout master M AuthNotifyResponse.cpp M AuthNotifyResponse.h M DataElementsTransactionResponse.cpp M DataElementsTransactionResponse.h M TransactionSession.cpp M authNotifyResponse.xsd M xch.h Switched to branch 'master' $ git checkout QF1 M AuthNotifyResponse.cpp M AuthNotifyResponse.h M DataElementsTransactionResponse.cpp M DataElementsTransactionResponse.h M TransactionSession.cpp M authNotifyResponse.xsd M xch.h Switched to branch 'QF1' 

我真的不想提交对QF1的更改,因为它们与另一个小组正在研究的项目有关,并且尚未完成。 如果我需要这样做,我可以提交它们,并在以后修改提交。

也许我可以撤消master的更改? 一开始我并没有真正将它们上演大师,只是在QF1中。

“ M”并不意味着合并,而是意味着已修改。 发生这种情况的原因是,您对本地文件进行了更改,然后将工作副本切换回了master分支,而不对更改进行任何操作,因此更改一直存在。 为避免这种情况,您必须在切换分支之前提交工作。

您声明要在使用分支方面变得更好。 这是使用分支机构时必须学习的内容之一。 承诺首先针对您,最后针对他人。 进行提交时,您将进行所有更改并记录下来。 如果您不希望更改,则将其丢弃。 但是,如果您确实需要更改,请提交更改,即使尚未完成。 只是不要发布分支供其他人查看。

如果您担心其他人会看到大量的检查点提交,也可以在推送之前进行香肠制作

本质上,您要做的是创建一个功能分支,然后简单地在完成其他操作之前不完成功能。 这就是为什么存在功能分支的原因。 不要抗拒它,使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM