是否有一个等同于以下的git命令,但不要求我每次都输入CURRENT_BRANCH
部分?
git checkout <tree-ish> -B CURRENT_BRANCH
例如,我在分支主上,并希望将其移回 origin / master ,因此我键入git checkout -B master origin/master
。或者,也许我想将其移回 HEAD~ ,因此我输入git checkout -B master HEAD~
。 - 注意,-B master
部分似乎是多余的,因为我已经在主。
(我不想reset --hard
,因为这会破坏脏文件。)
我正在寻找替代方案,主要是因为我倾向于不小心输入 git checkout -B <tree-ish>
以确保混淆。
答案 0 :(得分:0)
使用git rev-parse
获取当前分支名称:
git checkout -B $( git rev-parse --abbrev-ref HEAD ) origin/$( git rev-parse --abbrev-ref HEAD )
您可以创建一个返回当前分支的别名当前分支,以及另一个检查当前分支的别名 current-checkout (根据需要更改命令别名) :
# Add the current branch alias
git config --global alias.current-branch 'rev-parse --abbrev-ref HEAD'
# Add the checkout current branch alias
git config --global alias.checkout-current '!git checkout -B $( git current-branch ) origin/$( git current-branch )'
# Try the command
git checkout-current
修改强>
你也可以使用git reset --mixed
或git reset --soft
作为参考,具体取决于你想做什么(那些将保留你的“脏”文件)。
答案 1 :(得分:0)
别名似乎是目前唯一的出路:
git config --global alias.become '!git checkout -B "$(git symbolic-ref --short HEAD)"'
e.g:
$ git checkout foo
$ git become HEAD~
Reset branch 'foo'