git switch <branch>允许我移动到现有分支。git switch -c <branch>允许我创建一个新分支。是否有一个命令,它将根据分支是否已经存在,创建一个新的分支或 checkout 现有的分支?
git switch <branch>
git switch -c <branch>
ujv3wf0j1#
没有内置任何内容,但定义别名或编写脚本很容易:
if git show-ref --quiet "refs/heads/$branchname"; then git switch "$branchname"; else git switch -c "$branchname"; fi
或者也许
git show-ref --quiet "refs/heads/$branchname" || create=-c; git switch ${create:+"$create"} "$branchname"
将其配置为别名:
git config --global alias.sw '!f() { if git show-ref --quiet "refs/heads/$1"; then git switch "$1"; else git switch -c "$1"; fi; }; f'
(or变式2:)
git config --global alias.sw '!f() { git show-ref --quiet "refs/heads/$1" || create=-c; git switch ${create:+"$create"} "$1"; }; f'
然后用途:
git sw branch-to-checkout-or-create
cs7cruho2#
我不知道有这样的命令,但是你可以创建一个别名来完成它,在这个例子中是git csw(git show-branch将用*标记当前的分支,并显示没有分支被重置):
git csw
git show-branch
*
$ git config alias.csw '!sh -c "git switch $1 || git switch -c $1"' $ git show-branch * [branch-a] b ! [master] h -- * [branch-a] b *+ [master] h $ git csw master Switched to branch 'master' $ git show-branch ! [branch-a] b * [master] h -- + [branch-a] b +* [master] h $ git csw branch-a Switched to branch 'branch-a' $ git show-branch * [branch-a] b ! [master] h -- * [branch-a] b *+ [master] h $ git csw branch-b fatal: invalid reference: branch-b Switched to a new branch 'branch-b' $ git show-branch ! [branch-a] b * [branch-b] b ! [master] h --- +* [branch-a] b +*+ [master] h
2条答案
按热度按时间ujv3wf0j1#
没有内置任何内容,但定义别名或编写脚本很容易:
或者也许
将其配置为别名:
(or变式2:)
然后用途:
cs7cruho2#
我不知道有这样的命令,但是你可以创建一个别名来完成它,在这个例子中是
git csw
(git show-branch
将用*
标记当前的分支,并显示没有分支被重置):