如何干净地获取/复制远程git分支到本地仓库

ncgqoxb0  于 2023-03-06  发布在  Git
关注(0)|答案(4)|浏览(210)

我希望将远程分支的精确“拷贝”“复制”到特定的本地分支。
比如说,一个团队成员创建了一个实验特性,他将其签入到远程仓库的一个名为experiment的分支中,我希望能够 checkout 本地仓库的一个新分支,并将experiment分支原样“复制”到我新 checkout 的分支中。
我不想把它和我的代码合并--我想完全覆盖我的代码,这样我就可以清楚地看到他在“实验”分支上做了什么。
如何“获取”(fetch/pull/whatever...)其他人已经提交到远程仓库的远程分支到您自己的本地仓库,而不尝试在您自己的本地代码上执行合并?

u7up0aaq

u7up0aaq1#

如果您不关心合并:

git reset --hard <remote>/<branch_name>

这将完全符合您的要求:没有合并,没有变基,简单地将本地分支置于与远程分支完全相同的状态。
但是在您的情况下,您不需要这样做,您希望创建一个与远程分支具有相同状态的本地分支,因此在使用git checkout创建本地分支时指定远程分支:

git checkout -b <my_new_branch> <remote>/<branch_name>

如果要在本地使用相同的名称,可以将其缩短为:

git checkout <branch_name>

如果你已经有了一个本地分支(例如,有了一些修改),你可以使用git reset --hard,放弃你所做的任何修改,而是使用远程分支的确切版本。
要确保您拥有远程分支的最新状态,请在 checkout 或重置之前使用git fetch <remote>

ogsagwnx

ogsagwnx2#

我没有足够的代表来评论,但我想为那些还在挣扎的人添加一个例子。在我的例子中,我使用Github作为我的远程,并将分支复制到我的Linux服务器环境/终端。
首先,您需要运行git fetch以确保您是最新的。
使用以下示例
git checkout -b <my_new_branch> <remote>/<branch_name>
有一家叫"皮克林里克"的偏远分店
我跑了
git checkout -b picklerick remotes/origin/picklerick
我可能只使用remote/picklerick作为我的远程路径,但这对我很有效。

aoyhnmkz

aoyhnmkz3#

假设git remote命令输出origin作为结果,则

git fetch origin remote_branch_name:local_branch_name

将创建一个本地分支,它是您需要的远程分支的精确副本。
编辑:还有一个更现代的替代方案:

git switch remote_branch_name

该命令将创建一个与指定的远程分支同名的本地分支。

xriantvc

xriantvc4#

使用更新远程分支的本地副本

git fetch

从远程分支创建新分支

git branch new_branch_name origin/remote_branch_name

这里origin是遥控器的名称。

相关问题