Git删除Git日志中的原始/分支



我对一个分支进行了一些更新,并将其合并到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命令连接到它的位置。

如果你想让它消失,你需要确保两件事:

  1. 必须删除GitHub上的improve-documentation分支(或您正在使用的其他远程repo(
  2. 当再次更新本地主分支时,使用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但不知道你做了什么的人感到困惑,因此警告用粗体。

最新更新