bd = "!f() { git branch --merged | egrep -v '(^\*|master|dev)' | xargs git branch -d }; f"
我试图别名git命令来删除我所有的本地合并分支。
当我将bash命令放入我的gitconfig中时,git抱怨一个错误的配置行:
fatal: bad config line 26 in file /Users/johnsona/.gitconfig
答案 0 :(得分:6)
我建议改为在PATH中创建一个bash脚本,然后在你的git别名中调用该脚本(或者无论如何它都在你的PATH中,只需命名文件{{1} })。
例如,制作文件 => 00 A4 04 00 08 A0 00 00 01 51 00 00 00 00 .........Q....
(9407 usec)
<= 6F 64 84 08 A0 00 00 01 51 00 00 00 A5 58 9F 65 od......Q....X.e
01 FF 9F 6E 06 47 91 23 47 41 00 73 49 06 07 2A ...n.G.#GA.sI..*
86 48 86 FC 6B 01 60 0B 06 09 2A 86 48 86 FC 6B .H..k.`...*.H..k
02 02 02 63 09 06 07 2A 86 48 86 FC 6B 03 64 0B ...c...*.H..k.d.
06 09 2A 86 48 86 FC 6B 04 02 55 65 0B 06 09 2B ..*.H..k..Ue...+
85 10 86 48 64 02 01 03 66 0C 06 0A 2B 06 01 04 ...Hd...f...+...
01 2A 02 6E 01 02 90 00 .*.n....
Status: No Error
cm> set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f
cm> init-update 255
=> 80 50 00 00 08 7D 62 4D F4 89 F6 07 E3 00 .P...}bM......
(55368 usec)
<= 00 00 42 87 00 17 97 93 24 74 FF 02 00 01 3C 2B ..B.....$t....<+
97 86 B8 3B 57 0A D0 9F 82 BF AD C2 90 00 ...;W.........
Status: No Error
cm> ext-auth plain
=> 84 82 00 00 10 EA 1A 9D A0 24 E6 00 9E F8 84 96 .........$......
1A 77 71 46 B4 .wqF.
(56879 usec)
<= 90 00 ..
Status: No Error
cm> delete ff4563686f4170706c6574
=> 80 E4 00 00 0D 4F 0B FF 45 63 68 6F 41 70 70 6C .....O..EchoAppl
65 74 00 et.
(956894 usec)
<= 00 90 00 ...
Status: No Error
git-bd
使用以下命令使文件可执行:
~/bin/git-bd
并确保您的#!/usr/bin/env bash
git branch --merged | egrep -v '(^\*|master|dev)' | xargs git branch -d
,chmod +x ~/bin/git-bd
或.bashrc
文件包含以下内容:
.bash_profile
您可以直接致电.bash_login
,也可以像export PATH="$HOME/bin:$PATH"
一样添加别名:
git-bd
要添加到此答案,您收到错误配置错误的原因可能是由于反斜杠。 git-config将按原样读取它们,因此您需要使用第二个反斜杠再次将它们转义。
答案 1 :(得分:0)
要使@torek的comment更加可见并对其进行扩展:当您要将其放入gitconfig中时,这样的命令有几个问题,可以使结果更简单
假设您要为following command加上别名:
git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
|
,因此您必须在命令前加上!
(您已经这样做了)"
,所以您要么用\"
转义,要么使用单个'
(也已经固定)\
,因此您必须使用\\
对其进行转义。结果:
[alias]
delete-merged-branches = ! git branch --merged | egrep -v '(^\\*|master)' | xargs git branch -d
您还可以在bash中运行(不是git会为您逃脱\
,但您必须用"
换行,所以您需要对它们进行逃脱)
git config --global alias.delete-merged-branches "! git branch --merged | egrep -v '(^\*|master|dev)' | xargs git branch -d"