我想创建一个新的分支并检查它。但是,如果我正在创建的分支名称已经存在,我不希望出现错误,我只是希望git将已经存在的分支更新到我正在检查它的位置。
以下是我正在做的事情:
$ git branch
develop
* foobar
$ git checkout -b develop origin/develop
fatal: A branch named 'develop' already exists.
$ git update-ref refs/heads/develop origin/develop
$ git checkout develop
Switched to branch 'develop'
$ git branch
* develop
foobar
$
这就像我想要的那样:
$ git checkout --update-if-exists -b develop origin/develop
Switched to branch 'develop'
$ git branch
* develop
foobar
$
答案 0 :(得分:-1)
我不知道有一个git命令允许你这样做,但是这里有一个bash脚本(我认为)可以做你想要的:
#!/bin/bash
git fetch origin "$1"
if [[ 0 != $? ]]; then
git branch "$1"
fi
git checkout "$1"
编辑:(评论后)
我明白了。当然,我们可以像这样修复脚本:
#!/bin/bash
git branch "$1"
if [[ 0 != $? ]]; then
git update-ref "refs/heads/$1" "origin/$1"
fi
git checkout "$1"
而且,如果您不希望它在第一个命令失败时显示错误,您可以将这些错误静音:
#!/bin/bash
git branch "$1" 2>/dev/null
if [[ 0 != $? ]]; then
git update-ref "refs/heads/$1" "origin/$1"
fi
git checkout "$1"