繁体   English   中英

如果我将工作合并到主数据库但没有推送后,有人将新提交提交到git存储库的主数据库,该怎么办?

[英]What shall I do if someone pushed new commits to master of git repository after I merged my work to master but didn't push?

我刚刚开始使用GIT。 考虑一个只有两个开发人员的非常小的团队:devA和devB。

这是场景:

  1. 它们都基于提交ver-01进行工作。
  2. DevA提交了ver-02,并推送到了中央仓库。
  3. DevB推送了他/她的ver-03,但失败了,因此devB取得了主服务器,现在有了一个包含ver-03的主服务器和一个包含ver02的origin / master。 他/她将母版与原版/母版合并,现在具有包含ver-02和ver-03的ver-04,然后将其正常推送到中央存储库。

我想知道的是,当DevB合并代码时,DevA推出了另一个版本05。 因此,在DevB将其母版与原件/母版合并之后,他/她仍然无法推动,因为他/她必须解决04-04版和05-04版之间的冲突。 如果我是DevB,则运行了“ git fetch origin master”,但是我应该运行哪个命令来合并? 我尝试了“ git merge origin master”,但它告诉我“已经是最新的。”,但是当我推送它时失败了。

我发现实际上有3个分支:

  • 主人->包含我的更改,即ver-03
  • 源/主->包含最新的远程更改,版本为05
  • HEAD-> origin / master->包含ver-04,它是从ver-02和ver-03合并而成的。

接下来我该怎么办?

首先,我将使用以下命令备份我的工作:git checkout -b backup

返回主站:git checkout主站

从远程拉出并解决冲突:git pull

推送更改:git push

我强烈建议您在分支机构上工作(并避免像这样直接推向高手):

git checkout -b功能(创建新分支并对其进行签出)git push -u origin功能(将分支推送到远程)git commit -am“ Commit1”

现在,您有两个选择(位于功能分支上):git rebase master(如果您独自在此分支上工作)或git merge master(如果其他人也使用该分支)

解决冲突

git checkout master(移至主菜单)

git merge功能(将分支合并到master)

git推


如果您对母版进行了少量更改,则可以:

git stash(将您的工作保存在存储中)

git pull(将远程更改带到本地)

git stash apply(将您的更改应用于远程更改)

解决冲突

git commit -m“消息”

git推

暂无
暂无

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

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