Github 我有两个git分支开发和掌握,但错误地将一些代码直接签入掌握
一些代码被直接推送到不在开发分支中的master 还有一些代码是签入开发的,但还没有合并到master中Github 我有两个git分支开发和掌握,但错误地将一些代码直接签入掌握,github,git-stash,Github,Git Stash,一些代码被直接推送到不在开发分支中的master 还有一些代码是签入开发的,但还没有合并到master中 同步两个分支的最佳方式是什么,这样两个分支都将具有相同的代码?通常,您会将远程主分支视为有关产品状态的最终权限。在这种假设下,您可能首先使用来自主控的最新更改更新开发,然后将更新后的开发分支推回到主控。这里有一个方法: git fetch origin git checkout develop git merge origin/master # resolve any merge confl
同步两个分支的最佳方式是什么,这样两个分支都将具有相同的代码?通常,您会将远程
主分支视为有关产品状态的最终权限。在这种假设下,您可能首先使用来自主控
的最新更改更新开发
,然后将更新后的开发
分支推回到主控
。这里有一个方法:
git fetch origin
git checkout develop
git merge origin/master
# resolve any merge conflicts, etc.
git push origin develop
然后,您可以将development
合并到master
。如果您使用的是GitHub之类的东西,那么这可能是通过拉请求实现的。因此,您可以从develope
创建一个pull请求,指向master
作为目标分支。如果要在本地进行合并,则可以尝试:
git checkout master
git merge develop
git push origin master
但大多数大型软件项目都使用类似GitHub或Bitbucket的repo来阻止任何人以这种方式直接更新master
。如果我理解的话,通常你会承诺develope
,然后将develope
合并到master
中<代码>主控
总是落后于开发
。差不多吧
A - B - C - D [master]
\
E - F - G [develop]
您可以使用git log--decoration--graph
获得存储库的这种视图
但是有人直接向下面的master
,H-I
做出了承诺,而您就遇到了这种情况
A - B - C - D - H - I [master]
\
E - F - G [develop]
相反,你想要这个
A - B - C - D [master]
\
E - F - G - H - I [develop]
我们又来了
A - B - C - D - H - I [master]
\
E - F - G [develop]
您可以使用git cherry pick
在develope
之上复制H-I
git checkout develop
git cherry-pick H I
A - B - C - D - H - I [master]
\
E - F - G - H1 - I1 [develop]
然后将master
移回D
git checkout master
git reset --hard D
A - B - C - D [master]
\
E - F - G - H1 - I1 [develop]
用--force
推动两个分支