所以我在GitHub上有2个分支:master和branchA。说我一直在做硕士和硕士提前3次提交或其他什么。因此,master上的提交d,e和f不在branchA中。接下来说我的同事用commit g将branchA上传到GitHub。所以我们有:
master: a, b, c, d, e, f
branchA: a, b, c, g
现在说我想切换到branchA并准确拉出GitHub上的内容。我遇到的问题是,当我使用git branch branchA
时,它会自动使用master作为我的起始位置,从而添加d,e,f,当我拉动branchA时,我会发生冲突,如g和d,e, f尚不兼容。
有没有办法从GitHub中提取我的本地提交日志与GitHub上的匹配?我试过了git pull -f
,但这显然也没有用。
答案 0 :(得分:0)
git fetch origin
git checkout origin/branchA -b <local branch name>
这将使用您指定的名称创建一个本地分支,该分支是branchA
上origin
的完全复制。如果您的GitHub遥控器的名称不是origin
,请相应调整。
您也可以使用git branch
指定起点:
git fetch origin
git branch <local branch name> origin/branchA
git checkout <local branch name>
-b
git checkout
的{{1}}标记如果您计划检查您正在创建的分支,只会缩短一步。
此外,如果您希望本地分支名称与远程分支相同,则可以采用更短的方式:
git fetch origin
git checkout -t origin/branchA
将创建与branchA
的{{1}}匹配的本地origin
。
答案 1 :(得分:0)
你应该
git fetch
然后用
之类的东西检查发生了什么git log --all --oneline --graph --decorate
现在您可以合并或修改同时完成的工作。任何以“origin”为前缀的分支都将是github上的内容(假设你是克隆的地方)。本地分支也会有不同的颜色。
如果你想工作一个尚未工作的分支,请检查并在本地分支中跟踪
git checkout -t origin/someBranch
我只会在特殊情况下使用pull,我正在合并或重新安排自己的工作。根据其他人的所作所为,我可能会选择重新合并而不是合并。