我对一个分支进行了一些更新,并将其合并到master。但我似乎犯了一个错误,我不知道该怎么解决
git log --all --decorate --oneline --graph
给出:
* 85b7966 (HEAD -> master, origin/master, origin/HEAD) Merge pull request #2 from doom-fr/improve-documentation
|
| * 547f135 (origin/improve-documentation) Improve documentation : add linux installation instructions
|/
* 66dac19 Merge pull request #1
我认为(origin/improve-documentation)
不应该存在。
如何移除它?
您所描述的内容以及git log命令所显示的内容非常合理。
origin/improve-documentation
标记改进文档分支在远程存储库上指向的位置,即上次使用git命令连接到它的位置。
如果你想让它消失,你需要确保两件事:
- 必须删除GitHub上的
improve-documentation
分支(或您正在使用的其他远程repo( - 当再次更新本地主分支时,使用
git pull --prune
告诉git放弃所有指向不再存在的远程分支的本地指针(默认情况下不会这样做(
如Git获取或拉取的自动修剪中所述,您也可以通过将修剪作为特定远程的本地默认行为
git config remote.origin.prune true
或针对您使用的每个git回购进行全局
git config --global fetch.prune true
如果我理解正确,您希望撤消合并到主分支的提交547f135 (origin/improve-documentation)
。
从master
创建一个分支并运行git revert <commit-hash>
。这将创建一个新的提交,并撤消作为错误提交一部分所做的所有更改。
您可以通过git log
识别提交哈希
所以你可以做
git revert 547f135
,然后再次尝试将此分支合并到master。
一个稍微粗略的选项是简单地重置master
只有在使用origin
的其他人知情并同意的情况下才能执行此操作
git switch master # if necessary
git reset 66dac19
git push -f
这将使85b7966成为孤立提交,最终将被垃圾收集。这也会让任何已经看过85b7966但不知道你做了什么的人感到困惑,因此警告用粗体。