繁体   English   中英

Git强制从远程拉分支

[英]Git force pull branch from remote

所以我在GitHub上有2个分支:master和branchA。 假设我一直在研究master,并且master领先3次提交。 因此,master上的提交d,e和f不在branchA中。 接下来说,我的同事通过提交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但是显然也不起作用。

git fetch origin
git checkout origin/branchA -b <local branch name>

这将创建一个名为本地分行您指定的精确复制branchAorigin 如果您的GitHub遥控器被命名为origin以外的其他origin ,请进行相应调整。

您也可以使用git branch指定起点:

git fetch origin
git branch <local branch name> origin/branchA
git checkout <local branch name>

如果您打算检出正在创建的分支,则git checkout-b标志只会使操作缩短一步。

此外,如果您希望本地分支名称与远程分支相同,则可以使用更短的方法:

git fetch origin
git checkout -t origin/branchA

这将创建一个本地branchA相匹配originbranchA

你应该

git fetch

然后检查发生了什么类似的事情

git log --all --oneline --graph --decorate

现在,您可以合并或重新整理同时完成的工作。 前缀为“ origin”的所有分支都将是github上的内容(假设您是从那里克隆的)。 本地分支机构的颜色也将不同。

如果您要处理尚未处理的已被下拉的分支,请签出并在本地分支中跟踪

git checkout -t origin/someBranch

仅在合并或修改自己的工作的特殊情况下,才使用pull。 根据其他人的所作所为,我可能会选择合并而不是合并。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM