我使用以下命令删除已合并到HEAD.
>>> git branch | xargs git branch -d
>>> # (not -D) because I don't wanted to forced delete all the branches
Run Code Online (Sandbox Code Playgroud)
但是我注意到它还删除了一个没有合并到HEAD但被推送到远程的分支。
错误警告:(分支未被删除)
Run Code Online (Sandbox Code Playgroud)warning: not deleting branch 'ER-1421' that is not yet merged to 'refs/remotes/origin/ER-1421', even though it is merged to HEAD. error: The branch 'ER-1421' is not fully merged.
警告无错误:(已从本地删除)
Run Code Online (Sandbox Code Playgroud)warning: deleting branch 'ER-2256' that has been merged to 'refs/remotes/origin/ER-2256', but not yet merged to HEAD. Deleted branch ER-2256 (was d18dafcee).
我的问题是:如何限制删除会发出任何警告或未合并到的分支HEAD?
更新:基于@Saurav 评论。我尝试使用以下命令
>>>git branch --merged | tr '\n' ' ' | xargs git branch -d
warning: not deleting branch 'ER-1421' that is not yet merged to
'refs/remotes/origin/ER-1421', even though it is merged to HEAD.
error: The branch 'ER-1421' is not fully merged.
If you are sure you want to delete it, run 'git branch -D ER-1421'.
error: branch '*' not found.
error: Cannot delete branch 'master' checked out at '/media/sf_workspace/personify'
warning: not deleting branch 'release-66' that is not yet merged to
'refs/remotes/origin/release-66', even though it is merged to HEAD.
error: The branch 'release-66' is not fully merged.
If you are sure you want to delete it, run 'git branch -D release-66'.
Run Code Online (Sandbox Code Playgroud)
如果您只想删除合并到 HEAD 的本地分支,那么我宁愿建议只选择那些完全合并到 HEAD 的分支进行删除。对您的命令稍作修改即可解决此问题:
git branch --merged | xargs git branch -d
Run Code Online (Sandbox Code Playgroud)
git branch --merged只列出那些完全合并的分支。然后休息你可以删除xargs git branch -d。还要确保从 HEAD 指向的分支(可能是master分支)运行此命令。
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
1488 次 |
| 最近记录: |