无法从上游创建新分支

时间:2018-08-01 04:40:15

标签: git github

我想从上游创建一个新分支。我所做的是

$ 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

中遇到了错误

这有什么问题?最佳做法是什么?

2 个答案:

答案 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)

因此,简而言之,如果您想从上游分支创建新分支,请执行以下步骤

  • 首先分叉所需的仓库;
  • 克隆您的分叉存储库
  • 回购中的cd
  • 添加上游
  • 获取上游
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