我希望将远程分支的精确“拷贝”“复制”到特定的本地分支。
比如说,一个团队成员创建了一个实验特性,他将其签入到远程仓库的一个名为experiment
的分支中,我希望能够 checkout 本地仓库的一个新分支,并将experiment
分支原样“复制”到我新 checkout 的分支中。
我不想把它和我的代码合并--我想完全覆盖我的代码,这样我就可以清楚地看到他在“实验”分支上做了什么。
如何“获取”(fetch/pull/whatever...)其他人已经提交到远程仓库的远程分支到您自己的本地仓库,而不尝试在您自己的本地代码上执行合并?
4条答案
按热度按时间u7up0aaq1#
如果您不关心合并:
这将完全符合您的要求:没有合并,没有变基,简单地将本地分支置于与远程分支完全相同的状态。
但是在您的情况下,您不需要这样做,您希望创建一个与远程分支具有相同状态的新本地分支,因此在使用
git checkout
创建本地分支时指定远程分支:如果要在本地使用相同的名称,可以将其缩短为:
如果你已经有了一个本地分支(例如,有了一些修改),你可以使用
git reset --hard
,放弃你所做的任何修改,而是使用远程分支的确切版本。要确保您拥有远程分支的最新状态,请在 checkout 或重置之前使用
git fetch <remote>
。ogsagwnx2#
我没有足够的代表来评论,但我想为那些还在挣扎的人添加一个例子。在我的例子中,我使用Github作为我的远程,并将分支复制到我的Linux服务器环境/终端。
首先,您需要运行
git fetch
以确保您是最新的。使用以下示例
git checkout -b <my_new_branch> <remote>/<branch_name>
有一家叫"皮克林里克"的偏远分店
我跑了
git checkout -b picklerick remotes/origin/picklerick
我可能只使用
remote/picklerick
作为我的远程路径,但这对我很有效。aoyhnmkz3#
假设
git remote
命令输出origin
作为结果,则将创建一个本地分支,它是您需要的远程分支的精确副本。
编辑:还有一个更现代的替代方案:
该命令将创建一个与指定的远程分支同名的本地分支。
xriantvc4#
使用更新远程分支的本地副本
从远程分支创建新分支
这里
origin
是遥控器的名称。