我从项目经理的主分公司做了一个分支。根据我的理解,现在经理的主分支是upstream/master
,我刚刚分叉的是origin/master
。我对origin/master
进行了一些更改,其中一些更改只是添加了用于打印中间结果的注释和代码,这些更改符合我自己的理解。但也有新编写的代码更改。我在一次提交中提交了所有更改。但是我想仅为新创建的代码向upstream/master
发送拉取请求。如this Stack Overflow question中所述,我没有为我的目标提供简单的解决方案。
现在我想在Branch1
创建另一个名为origin
的分支,这个分支应该与upstream
相同,然后我只将新编写的代码提交给Branch1
},并从upstream
向Branch1
发送拉取请求。这种方法在当前的github系统中是否可行?如果是的话,你能告诉我这是怎么做到的。
修改
基于以下评论,答案和我自己的搜索的组合,我解决了这个问题。我做的是以下几点:
git checkout -b Branch1 upstream/master
,这将获得upstream/master
的相同副本,并将其设为名为Branch1
的新分支git checkout Branch1
,在文件config
中,将Branch1
的远程更改为origin
git checkout master somefolder
,此时主人应为origin/master
。git commit -m 'message'
git push
,somefolder
将被推送到Branch1
答案 0 :(得分:1)
使用github时的工作流程是gitub上的git命令和操作的混合。让我们说你的经理回购是https://github.com/manager/repo
,你的名字是allanqunzi
在github上。
1)在github上拆开回购,以便在https://github.com/allenqunzi/repo
2)使用git clone git@github.com:allenqunzi/repo.git
3)git remote -v
的输出应该只显示一个名为origin的远程指向git@github.com:allenqunzi/repo.git
4)进行更改并提交。用git push origin master
将它们推送到您的仓库
5)转到github并打开拉取请求。它应该在您经理的回购中显示为新的拉取请求。它说你希望有人将allenqunzi / repo master合并到manager / repo master。
6)有人接受PR,你的代码最终会进入你的经理回购。可选信息A)
如果您在经理/仓库工作时遇到问题,并且您需要在本地工作,则可以将经理回购添加为git remote add upstream git@github.com:manager/repo.git
的第二个远程。 git remote -v
现在显示两个不同的遥控器。现在,您可以git fetch upstream/master
和git merge upstream/master
更新您的本地仓库,然后使用git push origin master
推送它以更新您在github上的仓库。
可选信息B)
您还可以在其他分支中添加提交,推送此分支并从此分支打开PR到您的经理回购的主分支。
可选信息C)
如果您只想将某些文件/提交添加到管理器仓库,请在本地创建一个新分支。然后樱桃挑选所有提交到这个分支。或者复制要在其中更改的所有文件,然后进行新的提交。推送此分支并使用此分支打开拉取请求(请参阅B)以获取更多信息)
进一步阅读
两种资源也许有用(它们解释的有点相同,但可能更清楚一点;)
“fork a repo”https://help.github.com/articles/fork-a-repo/