所以,我知道你可以不检查就拔掉一根树枝:

git fetch origin branchname:branchname

有没有办法在不检查的情况下跟踪那家分行?
(通常,这是通过:git checkout --track origin/branchnamegit branch -u origin branchname完成的)答案可以是完全独立的命令,也可以是上面提到的获取的一部分。

最佳答案

正如一些评论者指出的那样,答案已经嵌入到你的问题中:使用git branch --set-upstream-to=origin/branchname branchname(或使用-u的较短版本)。不过,在这里添加一些注释可能很重要。
这不是在拉树枝(或者,嗯,也许是,因为这个短语没有很好的定义:-)。它的作用是:
从源获取任何必需的提交,然后
根据fetch在branchname的branchorigin中看到的内容创建或更新名为branchname的本地分支。
如果是更新,则如果对branchname的更改不是快进操作,则更新将失败。在这种情况下,要强制它成功,请添加一个force标志:--force或前导加号+
如果branchname是当前签出的分支,即如果HEAD是对该分支的符号引用,则更新也将失败。
如果本地分支已经存在并且已经具有上游集合,则可能不希望覆盖当前的上游设置。您可以使用git rev-parsebranchname@{upstream}将当前上游设置命名为branchname,否则将失败,因此:

if ! git rev-parse $branchname@{upstream} >/dev/null 2>&1; then
    git branch --set-upstream-to=origin/$branchname $branchname
fi

将设置上游(如果未设置),但如果已设置,则不执行任何操作。

08-28 01:39