尽管提交,Git 创建了一个新分支......如何解决这个问题?

Posted

技术标签:

【中文标题】尽管提交,Git 创建了一个新分支......如何解决这个问题?【英文标题】:Git creates a new branch despite commit... How to fix this? 【发布时间】:2021-12-20 03:22:23 【问题描述】:

首先,我将从我的工作流程开始:

    在我的本地存储库中创建了更改(使用 Notepad++) 尝试将更改推送到远程存储库 - 标准 Git 流程:

2.1. git add README.md

2.2. git commit --m "xxx"

2.3. git push

Git 在我的 GitHub 新分支“master”上创建之后,我需要创建一个拉取请求,然后,我可以合并更改...

$ git push
Enumerating objects: 32, done.
Counting objects: 100% (32/32), done.
Delta compression using up to 12 threads
Compressing objects: 100% (27/27), done.
Writing objects: 100% (32/32), 6.42 KiB | 2.14 MiB/s, done.
Total 32 (delta 8), reused 22 (delta 5), pack-reused 0
remote: Resolving deltas: 100% (8/8), done.
remote:
remote: Create a pull request for 'master' on GitHub by visiting:
remote:      https://github.com/Mikma03/Python_Bill_Lubanovic_BookCodes/pull/new/master
remote:
To https://github.com/Mikma03/Python_Bill_Lubanovic_BookCodes.git
 * [new branch]      master -> master

我坚信有办法解决这个问题。你有什么建议吗?

我希望在我的 GitHub 存储库上看到一个新的提交,而无需合并。

【问题讨论】:

你试过 git push -u origin 主命令了吗? 【参考方案1】:

一段时间以来,您一直在致电您当地的分支机构 master

您运行的是git push,因为您调用的是本地分支master,所以这意味着git push origin master:master。也就是说,您让 Git 将您在master 上创建的新提交发送到 GitHub 上 https://github.com/Mikma03/Python_Bill_Lubanovic_BookCodes.git 上的另一个 Git 存储库,然后让他们 (GitHub) 创建或者在他们的存储库中更新一个名为 master 的分支。

如果您希望在您的最后使用其他分支名称,重命名您的分支

git branch -m new-branch-name

例如。 (-m 选项代表 move,这是一种有趣的拼写 rename 的方式:这可以追溯到用于重命名文件的 Linux mv 命令,而该命令又可以追溯到 Unix mv 命令。)

如果您希望在 您的 端使用名称 master,但在 GitHub 上使用名称 roxible,请使用:

git push origin master:roxible

(通常这是一个坏主意,因为人们发现这种名称映射令人困惑,而且您每次都必须不断重复冒号语法,这很烦人 - 有一些解决方法 但那已经很遥远了)。

请注意,当您在自己的计算机上创建一个新的、完全为空的存储库时:

mkdir new-repo
cd new-repo
git init

例如(在 Linux 系统上),您的 Git 存储库中没有分支名称,但您您的 master 分支。你只是在一个不存在的分支上。此时您有两个选择:重命名不存在的分支,例如:

git checkout --orphan main

这是一种真的奇怪的方式来拼写“重命名一个不存在的分支”,或者继续创建第一个提交,然后使用git branch -m 重命名master

在最新版本的 Git 中,git init 有一个标志 -b,用于设置分支名称:

git init -b main

它创建了存储库,以便将不存在的分支命名为 main 而不是 master。这避免了重命名分支,但需要一个相当新版本的 Git。还有一个新的init.defaultBranch 配置变量,但是这个有一个缺点,如果你的 Git 太旧而无法知道这个配置变量,git init 会默默地忽略它。 -b 标志的优点是它可以工作,或者git init 抱怨它不知道-b 的含义。

【讨论】:

以上是关于尽管提交,Git 创建了一个新分支......如何解决这个问题?的主要内容,如果未能解决你的问题,请参考以下文章

Git 如何从特定的提交中创建一个新的分支

如何从旧提交创建新的 Git 分支? [复制]

Git 如何从特定的提交中创建一个新的分支

使用 GIT 如何将不同提交中的文件签出到新分支中? [复制]

Git分支

如何从远程仓库中的 master 删除 GIT 分支并从另一个分支启动新分支?