Git相信前面的分支在后面
Git believes ahead branch is behind
我犯了一个错误,在应该推送到 develop 的时候将更改推送到 master。哎呀!
因此,我将更改推送到 develop 并从 master 中删除了更改。
不幸的是,这导致 GitHub 当 develop 是 master 之前的时候,认为 master 是 develop 之前的提交。
如何让 GitHub 理解 develop 是具有较新内容的分支,以便新的更改不会在未来的拉取请求中被覆盖?
编辑:
我通过拉取删除了 master 中的更改,使用
删除了最后一次提交
git revert -m 1 <SHA of commit>
,并将其推送到 master
编辑 2:
看来我没说清楚。 develop分支有我想实现的变化,以后掌握。
但是,master 分支有我应用到 develop 的提交加上一个额外的提交,这抵消了 develop 的更改。
我希望 develop 中的更改将来应用到 master 中。但是,master 认为它是超前的,因为我取消了 develop 中实现的更改。
因此,develop 分支被认为是落后 1 次提交,0 次提前提交,因为 master 有来自 develop 的更改加上一个反转来自 develop 的更改的提交。
根据我的理解,git rebase 会 'fast-forward' 发展到 master。但是,这将是不需要的,因为这会删除 master 将来由于上述解释而需要进行的更改。
这是 git 的概念,其中一个分支在另一个分支的前面和后面。
由于您从 master
中删除了不需要的提交但又进行了 1 次提交(develop
分支中不存在),这意味着 [=11 中存在 1 次提交=] 并且在 develop
分支中不存在。显然,master
比 develop
.
提前 1 次提交
同样,必须有一些提交(比如 n),它们存在于 develop
中但不存在于 master
- 这意味着 develop
分支是 n
在 master
.
之前提交
所以你 master
领先(1 次提交)和落后(n 次提交)develop
分支。
要解决此问题,请将 master
合并到 develop
分支。
编辑后:
要解决此问题,请获取您认为正确属于 master 分支的最新提交 ID(就在 develop 分支提交之前)。说 <c1>
。然后执行以下操作:
git reset --hard <c1>
这将同时删除合并和取消合并提交。
我犯了一个错误,在应该推送到 develop 的时候将更改推送到 master。哎呀!
因此,我将更改推送到 develop 并从 master 中删除了更改。
不幸的是,这导致 GitHub 当 develop 是 master 之前的时候,认为 master 是 develop 之前的提交。
如何让 GitHub 理解 develop 是具有较新内容的分支,以便新的更改不会在未来的拉取请求中被覆盖?
编辑:
我通过拉取删除了 master 中的更改,使用
删除了最后一次提交git revert -m 1 <SHA of commit>
,并将其推送到 master
编辑 2:
看来我没说清楚。 develop分支有我想实现的变化,以后掌握。
但是,master 分支有我应用到 develop 的提交加上一个额外的提交,这抵消了 develop 的更改。
我希望 develop 中的更改将来应用到 master 中。但是,master 认为它是超前的,因为我取消了 develop 中实现的更改。
因此,develop 分支被认为是落后 1 次提交,0 次提前提交,因为 master 有来自 develop 的更改加上一个反转来自 develop 的更改的提交。
根据我的理解,git rebase 会 'fast-forward' 发展到 master。但是,这将是不需要的,因为这会删除 master 将来由于上述解释而需要进行的更改。
这是 git 的概念,其中一个分支在另一个分支的前面和后面。
由于您从 master
中删除了不需要的提交但又进行了 1 次提交(develop
分支中不存在),这意味着 [=11 中存在 1 次提交=] 并且在 develop
分支中不存在。显然,master
比 develop
.
同样,必须有一些提交(比如 n),它们存在于 develop
中但不存在于 master
- 这意味着 develop
分支是 n
在 master
.
所以你 master
领先(1 次提交)和落后(n 次提交)develop
分支。
要解决此问题,请将 master
合并到 develop
分支。
编辑后:
要解决此问题,请获取您认为正确属于 master 分支的最新提交 ID(就在 develop 分支提交之前)。说 <c1>
。然后执行以下操作:
git reset --hard <c1>
这将同时删除合并和取消合并提交。