git - git branch -h 创建了名为“-h”的分支。这是预期的吗?
问题描述
如图所示,不确定分支是如何-h
-merged
--help
创建的
如何删除不需要的分支[/意外创建的]分支?
从 git bash [Windows]更新文本
$ git branch -a
* calc
master
–-help
–h
–merged
remotes/origin/master
解决方案
这些分支很可能不是命名为-h
,-merged
等,而是命名为–h
,–merged
等。仍然很难分辨,但第二组名称的第一个字符是破折号,而不是第一个字符是连字符。破折号是 Unicode 字符 U+2013。
输入这种字符的键盘方法取决于操作系统和/或键盘和/或其他软件:这里没有什么标准。(在 MacOS 上,我输入它的最简单方法是按住option键并按下-键。)
要以编程方式处理它,您可以使用 Python。例如,在 Python 3 中:
>>> import subprocess
>>> s = subprocess.check_output('git branch', shell=True).split(b'\n')
现在打印值s
会生成分支名称作为字节字符串列表。就我而言,在创建了一个名为 的分支之后–merged
,其中之一(s[5]
在我的测试存储库中)是:
b' \xe2\x80\x93merged'
它显示了短划线的 UTF-8 编码序列:
>>> s[5].decode('utf8') == ' \N{en dash}merged'
True
>>> s[5].decode('utf8') == ' \u2013merged'
True
要删除它,我可以git branch -D
再次从 Python 调用:
>>> subprocess.check_call('git branch -D \N{en dash}merged', shell=True)
Deleted branch –merged (was 4ede3d42df).
0
(请注意,在 Python 2.7 下,这有点不同,因为内置字符串类型等效于该bytes
类型,而不是 Python 2.7unicode
类型。)
推荐阅读
- r - 根据另一个用R中的二进制状态填充数据帧
- typescript - 类的类型提示作为 TypeScript 中的参数
- laravel - 在响应中添加特定的相关字段
- scala - 拥有多个 Scala SimpleSwingApplication 实例
- python - Twitch Bot URL 恶意软件/病毒检测 PYTHON
- tesseract - 如何在 PA 上更新 Tesseract?
- sql - 如何使 ORACLE SQL 上的值为 0 为空?
- javascript - Google App Scripts - 如何根据另一个单元格清除多个单元格的内容?
- flutter - 实现此主屏幕的最佳方法是什么?
- macos - How to pass value from apple script to shell script in Automator?