我通常必须克隆git repo中没有的远程分支(例如,来自同事)
虽然git push
的设置很简单(请参见Why do I need to do `--set-upstream` all the time?)
对于git pull,我没有发现同样的情况。
现在我的工作流程是:
branch123
中提取projectABC
cd projectABC && git checkout -b branch123
git pull
A,我受到欢迎:
当前分支没有跟踪信息。请 指定您要合并的分支。参见git-pull(1) 详细信息。
git pull <remote> <branch>
如果您希望为此分支机构设置跟踪信息,可以这样做 与:
git branch --set-upstream-to=origin/<branch> branch123
我该如何简化?
答案 0 :(得分:2)
在使用import {SHOW_PANNEL} from '../actions/pannel/types';
const initialState = {
visible: false
};
function showPannelReducer(state = initialState, action) {
switch (action.type) {
case SHOW_PANNEL:
return {
...state,
visible: action.visible
}
default:
return state
}
};
export default showPannelReducer;
标志进行结帐时,实际上创建了一个新的本地分支,未链接到任何远程分支。第一次推送新分支时,您可以通过执行-b
将其链接到新的远程分支。如果要签出现有分支,只需删除git push -u
。
答案 1 :(得分:2)
如果您要签出仅以origin/branchName
身份存在的分支(因此git branch -l
不会列出没有branchName
的{{1}}),如下所示:
origin
您将创建一个新的本地分支,该分支会自动跟踪git checkout branchName
。 Git还应该通知您:
origin/branchName
使用Branch branchName set up to track remote branch branchName from origin.
Switched to a new branch 'branchName'
标志时,还需要添加-b
标志以一次性设置跟踪:
-t
仅当您希望本地分支的名称与git checkout -b branchName -t origin/branchName
上的名称不同时,此命令才真正有用。在简单的情况下,只需忽略origin
。
或者,您可以在第一次推送时使用in @Tobb's answer中提到的-b
参数。本质上,这与到普通-u
的同名远程分支执行相同的自动映射。
答案 2 :(得分:1)
通常,您会这样做:
git branch -u %remotename%/%branchname%
将%remotename%替换为您设置的远程名称(通常称为“来源”)。将%branchname%替换为远程分支名称。
答案 3 :(得分:0)
这是我想出的:
在我的.gitconfig中具有以下别名
track = "!f(){ branch=$(git name-rev --name-only HEAD); cmd=\"git branch --set-upstream-to ${1:-origin}/${2:-$branch} $branch\"; $cmd; }; f"
信用:https://andre.arko.net/2012/05/29/track-remote-git-branches-with-ease/