我有两个分支json.loads(my_data.content)
; master
和branch1
。我对branch2
进行了一些更改,并为此启用了有效的PR。我也对branch1
进行了更改,这些更改已经过审核并合并到branch2
中,随后该分支也被删除了。
我通过执行master
和master
更新了我的本地git fetch -ap
,从而降低了git pull
中所做的更改。我现在想要更新branch2
这些更改,以便唯一的区别是我在该分支上所做的。我尝试branch1
后跟git checkout branch1
。
但是,当我在git rebase master
上git status
时,它会说:
branch1
在此处执行On branch branch1
Your branch and 'origin/branch1' have diverged,
and have 3 and 1 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
会打开合并评论对话框。但现在,当我在git pull
查看我的公关时,它现在包含branch1
的更改作为新的更改。这里发生了什么,我该如何解决这个问题?
答案 0 :(得分:1)
(对于这个答案,我假设你已经签出Option Explicit
Sub main()
Dim arr1 As Variant, elem As Variant
arr1 = Application.Transpose(ActiveSheet.Range("A1:A4").value)
For Each elem In arr1
MsgBox elem
Next elem
End Sub
。如果没有,请branch1
。)
执行git checkout branch1
时,您正在重写git rebase master
中的提交,因为它们现在有了新的父级。这就是您的历史记录:
branch1
例如X--*--Y [master]
\ \
\ A'--B'--C' [branch1] <--
\ | (git rebase master)
A--B--C [origin/branch1] ----
与A'
的内容相同,但提交哈希值不同,因为其父级为A
而不是Y
。
由于提交已更改,您必须强制更新X
。完成rebase后,你应该这样做:
origin
但是,由于您已经进行了git push --force-with-lease
post-rebase,因此您需要先修复它。例如:
git pull
或者:
git reset --hard C'
这将从git reset --hard HEAD^
中删除合并提交,您可以按上述方法强制推送。首先,为了确保您的分支正确重置,请执行以下操作:
branch1
该命令的输出应该显示git log --oneline --decorate master..HEAD
中应该包含的所有提交,并且只显示那些提交。
(旁白:如果此时你做branch1
,你可能会看到这样的输出:
git status
您可以安全地忽略此警告,因为其中一个提交是合并提交,另一个是原始错误消息中的On branch branch1
Your branch is behind 'origin/branch1' by 2 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
。)
如上所述,此时你应该这样做:
1 different commit
现在,远程git push --force-with-lease
将与您的本地branch1
具有相同的提交。
强制性警告:由于rebase会重写历史记录,因此对于在此分支上工作的其他人来说,这可能会造成危险/破坏。请务必清楚地告知您与正在合作的任何人所做的事情。