我正在用叉子的叉子。我将表示这些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
。
我认为我需要做的步骤
project
正式设置为upstream
。当前,当我git pull
时,它认为origin/branch_old
是上游。我在另一个分支上,不希望它与origin/branch_old
关联。git pull
更新我的本地分支机构,还是可能更新local/master
,然后更新local/branch_new
?git push
的local/branch_new
形成一个新的origin/branch_new
。这部分应该很简单。我陷入了第1部分和第2部分。
答案 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