我有一个分支demo,我需要与master分支合并.我可以使用以下命令获得所需的结果:
git pull origin demo
git checkout master
git pull origin master
git merge demo
git push origin master
Run Code Online (Sandbox Code Playgroud)
我唯一关心的是,如果有任何合并问题,我想告诉git覆盖master分支中的更改而不给我合并提示.因此,demo分支中的更改基本上应该自动覆盖master分支中的更改.
我环顾四周有多种选择,但我不想冒险合并.
这是发生了什么:
我有两个远程git分支:master和feature1.出于某种原因,我必须使用git push --force的feature1分支,但我不知道,当我使用git push --force它也将推动master分支.然后,当我将本地master分支推送到远程存储库时发生了灾难.
幸运的是,我当地的分支机构离遥控器不太远.基本上,我的遥控器master有两个拉出请求在我的本地之前合并master.
所以我的问题是:我可以重新打开拉取请求并重新合并吗?我注意到有合并请求的提交版本,所以我担心如果我只是提出新的拉请求它会搞砸什么?理想情况下,我只想重做两个请求的合并.
还有其他方法可以从这场灾难中恢复过来吗?我知道这--force是一个非常非常糟糕的选择.:(
更新,发生了什么的例子:
我有以下分支:
master
feature1
origin/master
origin/feature1
Run Code Online (Sandbox Code Playgroud)
我使用GitHub集成了两个pull请求Auto merge pull requests.然后,我没有master在我的本地机器上获取分支.因此,我认为我origin/master是远程主人背后的两个版本.
然后我意外地使用了git -f push,它覆盖了远程分支,现在我从远程存储库上的pull请求中丢失了提交.
如何在不搞乱其他贡献者历史的情况下从中恢复?
我有一个分支“branch_x”,它与 master 属于同一存储库。然而,我愚蠢地开始在 branch_x 上开发,而没有从 master 那里检查出来。因此 master 和 branch_x 之间没有共同的祖先,当我尝试向 master 发出拉取请求时,我只是得到:没有什么可以比较的。master 和 branch_x 是完全不同的提交历史。
由于那个错误,我创建了那个存储库的分支。我正在尝试将 branch_x 的提交合并到 fork 的 master 分支中,然后我将尝试在原始存储库和 fork 之间请求拉取(因为现在它们有一些共同的历史)。但是,我不知道如何实际将 branch_x 从原始 repo 合并到 fork 的 master 分支。
这篇文章很相似,但我认为“git rebase -onto”不会有太大帮助:没有什么可以比较的。没什么可比较的,分支是完全不同的提交历史