捕获当前分支名称并使用 Windows 上的 Git 别名删除它?

Capture current branch name and delete it using Git alias on Windows?

目前我正在使用这个别名在后台获取 master 然后切换到它。这种方式 Visual Studio 对我来说最快:

[alias]
  fetch-checkout = !git fetch -p && git fetch origin master:master && git checkout master

除此之外我想做的是捕获当前分支名称并在之后删除它。

Windows可以吗?


Q: 如何获取Git中的当前分支名称?
答:git rev-parse --abbrev-ref HEAD

[alias]
  fetch-checkout = !curbr=$(git rev-parse --abbrev-ref HEAD) && git fetch -p && git fetch origin master:master && git checkout master && git branch -D $curbr

由于您无法删除当前所在的分支,因此您需要使用某种临时存储来存储旧分支的名称。类似于:

git rev-parse --abbrev-ref HEAD > tmp.txt && git checkout master && git branch -d `cat tmp.txt` && rm tmp.txt

可以,但您需要确保没有用 > tmp.txt

覆盖任何内容