将我的仓库回购与原始仓库同步

时间:2020-07-08 18:04:16

标签: git fork git-fork

我看到了很多与此相关的帖子,并且我知道了一般的答案,可以从我的fork的本地仓库执行此操作:

git remote add upstream https://github.com/abcd/efgh.git
git fetch upstream
git merge upstream/master
(resolve merge conflicts)
git commit -m "my message"
git push

但是在一般情况下,我还有几个问题。

  1. 当我执行git push时,为什么不必指定要推动的遥控器?还是我?
  2. 此外,我如何从upstream获取特定的提交ID,而不是在进行fetch upstream时得到的最新提交?

2 个答案:

答案 0 :(得分:0)

  1. git push(不带任何其他参数)将使用分支的上游确定推送到的位置。如果您在分支上,则git status将向您显示该分支的当前上游(如果有)。

    您可以git branch --unset-upstreamgit --set-upstream=newupstream/example

    如果您想将当前已签出的分支机构推送到特定位置,例如在上游,您可以只git push upstream master

  2. 指定要获取的提交:例如git fetch upstream 61586219a7450af5a72f857db62d9a89ad9cc38f

    可以使用FETCH_HEAD在git命令中访问获取的提交。例如。 git log FETCH_HEAD

注意:并非所有存储库都允许提取任意提交。例如。它们可能只允许获取命名的分支和请求(github)。

答案 1 :(得分:0)

我所做的是:

git remote add upstream https://github.com/abcd/efgh.git
git fetch upstream
git checkout 1q2w3e4r5t -b giveItABranchName
git checkout main
git merge giveItABranchName
(resolve merge conflicts)
git commit -m "my message"
git push