git - 从上游创建新分支失败

标签 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

但是此时发生了错误。它说

fatal: Cannot update paths and switch to branch 'changes1' at the same time. Did you intend to checkout 'upstream/master' which can not be resolved as commit?

在那之后我要做的就是将那个新分支推到我的 fork 上

$ git push -u origin changes1

也就是说,我总是在本地为新的变更请求创建一个分支。该分支是从 upstream/master 分支创建的。在本地提交更改并将其推送到我的 fork 。然后,向上游 master 创建 pull 请求。但是,我在 $ git checkout -b changes1 upstream/master

中收到错误

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

最佳答案

您需要先获取上游

git fetch upstream
git checkout -b changes1 upstream/master

默认情况下,只有 origin 被克隆/获取。
类型:

git remote -v

您会看到您的 Remote 。

理想情况下,upstream URL 应该origin 相同(应该是您的分支)。
upstream 应该指的是 fork 的原始 repo URL。


其次,不要做:

git init
git clone ...

这将克隆一个 git 仓库 另一个 git 仓库,这就是为什么 git remote -v 只显示上游。

改为尝试:

cd /a/path
git clone https://github.com/twentyTwo/LearnGitWithGithubFlow.git
cd LearnGitWithGithubFlow
git checkout -b changes1

(不需要 origin/master:默认情况下,origin/master 已经 checkout )

关于git - 从上游创建新分支失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51625435/

相关文章:

linux - 如何将命令执行器覆盖到 ~/bin my own 下的新版本 Git 而不是旧的/usr/bin/git

GitHub 存储库未在 Google 搜索中列出 - 无法提交 url

windows - 检查其他系统中 Git 存储库的状态

git - 在 git rebase -i 中删除提交不会减少 .git 文件夹的大小

git - 一个 git 存储库可以跟踪 subversion 和 git remotes 吗?

linux - 使用 "git revert"取消添加一行的更改?

Github 样式在命令行上拆分差异

git - 如何让操作系统认为一个目录是另一个目录?

github - 如何将参数批量传递到 Github Action 中的另一个步骤?

git - 更改 Jenkins 的 github 凭据