【发布时间】:2016-10-06 18:42:12
【问题描述】:
我有一个名为 Atomics 的开发分支(更准确地说,atomics)。它已完成开发。它测试OK,所以它被合并到Master中。我现在准备完全删除它,因为它不再需要了。
我真的认为这个问题很清楚并且回答得很好:Delete a Git branch both locally and remotely。唉,没用……
这就是我所做的:
# Accepted answer, succeeded
$ git push origin --delete atomics
# Shit, it did not delete the local branch
$ git branch -a
...
* master
atomics
# Another answer. Whoops, causes an error
git push --delete origin atomics
error: unable to delete 'atomics': remote ref does not exist
# Try yet another answer:
git fetch --all --prune
# Check again
$ git branch -a
...
* master
atomics
根据 Torek 的回答:
$ git branch -d atomics
error: The branch 'atomics' is not fully merged.
# See below on the prelude that may have caused this
# (yet another Git black-hole)
# Yep, did not work
$ git fetch --prune origin
$ git branch -a
* master
atomics
...
如果重要的话,这是 Apple 的 Git:
$ git --version
git version 1.8.5.2 (Apple Git-48)
此时,我有两个问题。首先,我们如何删除实际工作的本地和远程分支?考虑到引用的问题,这似乎是多余的,但即使答案被接受,问题似乎也没有得到回答。
其次,我如何从这种部分删除的特殊 Git 状态中恢复?
这是前奏。 --squash 是为了保证log on Master is accurate。
$ git checkout master
$ git merge --squash atomics
# These files already existed in Master, but a 'git push' after the merge
# did nothing. Also, 'git status' showed they were modified.
$ git add a.h b.h a.cpp b.cpp
$ git commit a.h b.h a.cpp b.cpp -m "Mergae Atomics into Master"
$ git push
编辑:我接受了 Torek 的回答,因为这个人太努力了,没有从中得到什么。不幸的是,该程序不适用于这个问题;当另一个开发分支被删除时,它在以下实验中不起作用。工具坏了,没有多少问答可以修复它。
【问题讨论】:
-
您可以尝试阅读
-Documentation... -
@jthill - 或者,该工具可以修复 :o 但要回答您的问题,是的,我在手册页上花费了大量时间。然后我还要跟进 Stack Overflow,这会浪费更多时间。花费了太多时间,以至于有些人认为这是浪费时间。
-
我们stopped using Git development branches。所有这些问题现在都解决了。我使用 问题无法再重现的原因投了第一票。