将分支的本地分支更新为上游/主服务器

时间:2020-08-24 20:47:17

标签: git

我正在用叉子的叉子。我将表示这些fork1和fork2。我在fork2上工作。

项目(上游)-> fork1-> fork2(来源)->本地

括号表示角色,即项目充当上游存储库,fork2是原始存储库,而local是本地存储库。 upstream中进行了大量提交。我对本地分支机构做了很多更改,我将其称为local/branch_new(我不使用local/master)。我想将local/branch_new更新为upstream/master,同时保留我所有的本地更改(它们不会冲突,它们是全新的,添加的文件,尽管它们取决于确实对其进行了更改的文件在上游版本中)。然后,我将local/branch_new推到origin(fork2)并将pull request推到upstream/master

我认为我需要做的步骤

  1. project正式设置为upstream。当前,当我git pull时,它认为origin/branch_old是上游。我在另一个分支上,不希望它与origin/branch_old关联。
  2. 使用git pull更新我的本地分支机构,还是可能更新local/master,然后更新local/branch_new
  3. 来自git push
  4. local/branch_new形成一个新的origin/branch_new。这部分应该很简单。
  5. 使PR成为项目/主管。这部分应该很简单。

我陷入了第1部分和第2部分。

1 个答案:

答案 0 :(得分:0)

我将如何做:

将branch_new的上游设置为原点:

git branch -u origin/branch_new

更新有关上游的本地信息:

git fetch upstream

branch_new上,隐藏我的本地更改:

git stash

添加一些更改以提交git add -p,然后提交git commit,最后按下git push

重新设置我的本地分支机构

git rebase upstream/master

然后应用我隐秘的修改:

git stash apply