我想从上游创建一个新分支。我所做的是
$ git init
$ git clone https://github.com/nalam-nmef/LearnGitWithGithubFlow.git
$ git remote add upstream https://github.com/twentyTwo/LearnGitWithGithubFlow.git
然后,从上游创建一个新分支
$ git checkout -b changes1 upstream/master
但是在这一点上会发生错误。它说
致命的:无法更新路径,并且无法同时切换到分支“ changes1” 时间。您是否打算结帐“上游/母版” 解决为提交?
那之后我要做的就是把那个新分支推到我的叉子上
$ git push -u origin changes1
也就是说,我总是在本地为新的更改请求创建一个分支。该分支是从上游/主分支创建的。在本地提交更改并将其推送到我的fork。然后,创建对上游主服务器的拉取请求。但是,我在$ git checkout -b changes1 upstream/master
这有什么问题?最佳做法是什么?
答案 0 :(得分:4)
您需要先获取upstream
。
git fetch upstream
git checkout -b changes1 upstream/master
默认情况下,仅克隆/获取origin
。
类型:
git remote -v
您将看到您的遥控器。
理想情况下,upstream
URL应该不与origin
一个URL(应该是您的fork)相同。
upstream
应该引用原始的回购URL。
第二,不要:
git init
git clone ...
这会在另一个git repo中克隆一个git repo ,这就是为什么git remote -v仅显示上游。
请尝试:
cd /a/path
git clone https://github.com/twentyTwo/LearnGitWithGithubFlow.git
cd LearnGitWithGithubFlow
git checkout -b changes1
(不需要原件/母版:默认情况下,原件/母版已签出)
答案 1 :(得分:1)
因此,简而言之,如果您想从上游分支创建新分支,请执行以下步骤
git clone https://github.com/forkedRepo/demoRepo.git cd demoRepo\ git remote add upstream https://github.com/originalRepo/demoRepo.git git fetch upstream
git checkout -b newLocalBranchName上游/从上游分支
git push -u origin newOriginBranchName