我们在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命令?
或者它会是错的,我现在必须采取另一种方式?
答案 0 :(得分:1)
在调用命令git clone git@github.com:myuser / mainproject.git后,我是否只需要在新计算机上再次重复上面列出的所有git命令?
听起来不错。
您的新计算机将获得一个新的克隆,它对上游遥控器一无所知,因此您需要再次添加该遥控器。
这就是我在“Forking vs. Branching in GitHub”中描述的内容。
请注意,我更喜欢在I:
的专用分支上工作upstream/master
这样,拉取请求是从该分支而不是master
完成的
每次推送都会自动更新拉取请求
每个更改都在该分支中被隔离(您无需检查它们是来自upstream/master
还是master
,因为您未在master
工作
另见: