如何在不在本地创建远程分支的情况下git fetch和checkout?

Ale*_*hin 15 git merge pull git-fetch git-checkout

使用案例:我在GitHub上有一些回购,有人将它分叉并添加了新功能并启动了拉取请求.我不能自动合并它,因为我想先解决一些小问题.

这是一次性活动,我永远不需要这个远程存储库,所以我不想创建本地remote分支.

基本上我想做:

  1. 从远程存储库复制文件并重写我自己的(没有任何git相关信息).
  2. 看到与我现在的头脑不同.
  3. 解决问题并提交.

怎么做?

git checkout git://github.com/xxx/xxx.git 根本不起作用(失败并出错)

git fetch git://github.com/xxx/xxx.git 有效但不更新任何东西

phb*_*phb 13

你想用FETCH_HEAD.

每当你运行git fetch ...一个名为的魔术引用时就会FETCH_HEAD被创建

试试例子:

git fetch git://github.com/xxx/xxx.git branch_name && git merge FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)

  • 这与`git pull git:// github.com/xxx/xxx.git`不一样吗? (2认同)

Cir*_*四事件 13

对于任何Git服务器:

git fetch git://host.com/path/to/repo.git remote-branch-name:local-branch-name
git checkout local-branch-name
Run Code Online (Sandbox Code Playgroud)


Chr*_*oph 7

另一个简洁的方法(至少在Github上/来自Github)是这样的:

git fetch repo pull/7324/head:pr-7324
Run Code Online (Sandbox Code Playgroud)

哪里:

repo指向远程仓库,例如git://github.com/xxx/xxx.git.

pull/7324/head 是远程拉取请求.

pr-7324 是本地的pull-request分支.

然后,您可以使用本地PR分支随意执行任何操作.

资料来源:改编自本次讨论.