如何在移动到新计算机后克隆远程分支

时间:2014-01-01 00:55:51

标签: git git-clone

我们在GitHub上有一个远程主服务器:git@github.com:mainproject/mainproject.git我通过单击fork按钮从它创建了一个fork,所以它看起来像这样: git@github.com:myuser/mainproject.git

我不允许将远程fork同步到远程master(git@github.com:mainproject / mainproject.git),我只允许将远程master同步到远程fork中。

在过去,我曾经使用过以下命令,因为我被告知了:

git remote add -t master upstream git@github.com:mainproject/mainproject.git
git fetch -a
git merge --ff-only upstream/master
git push origin HEAD

然后命令git branch -a出现在那里:

  master
  tutorial/test1
* tutorial/test2
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/tutorial/test1
  remotes/origin/tutorial/test2
  remotes/upstream/master

然后命令git remote -v出现在那里:

origin   git@github.com:myuser/mainproject.git (fetch)
origin   git@github.com:myuser/mainproject.git (push)
upstream    git@github.com:mainproject/mainproject.git (fetch)
upstream    git@github.com:mainproject/mainproject.git (push)

然后.git / config文件显示在那里:

[core]
  repositoryformatversion = 0
  filemode = false
  bare = false
  logallrefupdates = true
[remote "origin"]
  fetch = +refs/heads/*:refs/remotes/origin/*
  url = git@github.com:myuser/mainproject.git
[branch "master"]
  remote = origin
  merge = refs/heads/master
[remote "upstream"]
  url = git@github.com:mainproject/mainproject.git
  fetch = +refs/heads/master:refs/remotes/upstream/master

我已将命令git push origin tutorial/test2的最后一次更改推送到我的远程分支,因为tutorial/test2是我当前的分支,我正在努力。这就是它在我的旧电脑上运行的方式。

在新安装了操作系统的新计算机上,我想继续在远程fork中处理我的项目。我想继续我在旧计算机上停下的地方,并且已经将最后一次更改从旧计算机推送到我的远程分支。我想继续在分支tutorial/test2工作。

在调用命令git clone git@github.com:myuser/mainproject.git后,我是否只需要在新计算机上重复上面列出的所有Git命令?

或者它会是错的,我现在必须采取另一种方式?

1 个答案:

答案 0 :(得分:1)

  

在调用命令git clone git@github.com:myuser / mainproject.git后,我是否只需要在新计算机上再次重复上面列出的所有git命令?

听起来不错。

您的新计算机将获得一个新的克隆,它对上游遥控器一无所知,因此您需要再次添加该遥控器。
这就是我在“Forking vs. Branching in GitHub”中描述的内容。

请注意,我更喜欢在I:

的专用分支上工作
  • upstream/master
  • 之上重新定义
  • 推到我的前叉。

这样,拉取请求是从该分支而不是master完成的 每次推送都会自动更新拉取请求 每个更改都在该分支中被隔离(您无需检查它们是来自upstream/master还是master,因为您未在master工作

另见: