如何在git中合并两个不同的本地分支,其中一个分支没有提交

时间:2016-08-30 12:22:15

标签: git

我已经从github克隆了一个存储库,我们称之为A,它有分支 master

然后我在本地创建了一个不同的分支 dev ,稍后,我添加了一些文件并提交给 dev

今天,出乎意料的是,我添加并修改了一些文件,当我提交github时,git说:

  

遥控器包含您在本地没有的作品。

我意识到分支在,而不是 dev ,所以我检查了 dev 分支,但是新文件已经消失了

我不想将新的更改提交到主分支,但是dev分支,所以我想知道我是否可以将master中的本地更改合并到dev分支?

更新: 我切换回主分支,git status显示在分支主机上,无需提交,命令git push origin dev显示一切最新,& #39;很奇怪。

主分支中的git reflog如下所示:

5575415 HEAD@{0}: checkout: moving from dev to master  
696c7c5 HEAD@{1}: checkout: moving from master to dev  
5575415 HEAD@{2}: commit (amend): update  
1669e5d HEAD@{3}: commit: update  
696c7c5 HEAD@{4}: checkout: moving from dev to master  
696c7c5 HEAD@{5}: commit (initial): init dev branch 

dev分支中的git reflog如下所示:

696c7c5 HEAD@{0}: checkout: moving from master to dev  
5575415 HEAD@{1}: checkout: moving from dev to master  
696c7c5 HEAD@{2}: checkout: moving from master to dev  
5575415 HEAD@{3}: commit (amend): update  
1669e5d HEAD@{4}: commit: update  
696c7c5 HEAD@{5}: checkout: moving from dev to master  
696c7c5 HEAD@{6}: commit (initial): init dev branch  

1 个答案:

答案 0 :(得分:0)

你不能在这里快进(git pull)合并。

  1. 首先进入你的开发分支。
  2. 然后git fetch origin master
  3. 然后git merge origin / master
  4. 最后git commit提交合并
  5. 这样做是因为Git无法将更改从master合并到dev分支。这是两个不同的分支,因此无法进行快进(或git pull)。您必须首先获取主分支,然后将其与dev分支合并。