菜单导航

开发故事
为什么你的 master 分支有提交,而 main 没有?
开发故事

为什么你的 master 分支有提交,而 main 没有?

野盐
2025-05-10

刚开始不熟悉推送,总是把master和main搞混,对于一个人维护的项目来说,实属没必要这么麻烦,所以记录一下,确保所有的新提交都进入main。

方案一:将本地 master 合并到本地 main,然后推送 main (推荐)

这个方法最安全,因为它保留了当前 master 分支上的所有工作,并将其合并到 main

  1. 切换到 main 分支:

    首先,确保当前位于 master 分支,然后切换到 main 分支。

    Bash

    git checkout main

    如果提示 main 分支不存在,那可能是本地还没有 main 分支,或者 main 分支被叫做 master。可以先尝试 git branch -a 查看所有本地和远程分支,确认远程主分支是 remotes/origin/main。如果本地没有 main,创建一个并跟踪远程的 main

    Bash

    git checkout -b main origin/main
  2. 拉取最新 main 分支:

    确保本地 main 分支是最新的,以防有其他人在 GitHub 上直接对 main 做了修改。

    Bash

    git pull origin main
  3. 将 master 分支的修改合并到 main:

    现在,把 master 分支上所有新的提交合并到 main 分支。

    Bash

    git merge master

    如果出现冲突,Git 会告诉哪些文件有冲突。需要手动解决这些冲突(打开冲突文件,编辑它们,保留想要的部分,然后删除 Git 自动添加的冲突标记),解决完后 git add .git commit

  4. 将 main 分支推送到 GitHub:

    现在,main 分支包含了 master 上的所有最新修改。把它推送到 GitHub。

    Bash

    git push origin main

    如果之前对 master 做了 git commit --amend 并强制推送过,现在在 maingit push 可能也会遇到需要强制推送的情况,因为 main 的历史可能和 origin/main 不一致。 如果出现这种提示,并且确认 main 是正确的,可以尝试:

    Bash

    git push -f origin main
  5. (可选)删除本地 master 分支:

    如果只想在 main 上工作,并且 master 分支上没有需要的东西,可以删除本地 master 分支。

    Bash

    git branch -d master

    如果 master 还有未合并的提交,会报错。可以使用 -D 强制删除:git branch -D master (谨慎使用,因为会丢失未合并的提交)。

方案二:重置 main 分支到 master 的状态 (更直接,但会覆盖 main 历史)

这个方法更简单粗暴,它会直接让本地 main 分支“变成”本地 master 分支的样子。请注意,这会丢失 main 分支上可能存在的、而 master 分支上没有的任何提交。

  1. 确保当前位于 master 分支:

    Bash

    git checkout master
  2. 强制重置 main 分支到 master 的状态:

    Bash

    git branch -f main master

    这会强制将本地 main 分支的引用指向 master 分支的最新提交。

  3. 切换到 main 分支:

    Bash

    git checkout main
  4. 强制推送到 GitHub 的 main 分支:

    这将用本地 main 分支的(现在和 master 一样)历史,覆盖 GitHub 上的 main 分支历史。

    Bash

    git push -f origin main

    这个强制推送是必须的,因为它修改了远程 main 的历史。

  5. (可选)删除本地 master 分支:

    如果以后只需要 main 分支,可以删除本地 master 分支。

    Bash

    git branch -d master

版权声明

本文为「野盐」原创内容,图片个人摄影 / 手绘 / AIGC,后期 PhotoMator / Procreate,版权归「野盐」所有。未经授权,禁止用于商业用途,禁止抹除水印,禁止转发至小红书等平台。转载请注明出处与链接并保留本声明。

...

评论 (0)

评论将以随机ID显示
野盐

野盐

@wildsalt.me

推荐阅读

Automate reddit video creation with n8n待验证
开发故事

Automate reddit video creation with n8n待验证

野盐 | 2025-06-11

"用n8n自动化工具将Reddit帖子转化为视频的完整工作流定义,包含从内容抓取到视频渲染的每个技术细节"

7
解决 AI 编程助手多轮对话后幻觉和代码乱改问题的策略
开发故事

解决 AI 编程助手多轮对话后幻觉和代码乱改问题的策略

野盐 | 2025-06-06

AI代码助手不是魔法师,而是需要精确引导的学徒——当它开始‘自由发挥’,你需要更严格的对话管理和边界设定。

10
Claude失控,所有源代码被其删除。FUCK!
开发故事

Claude失控,所有源代码被其删除。FUCK!

野盐 | 2025-06-04

技术简化变成粗暴删除:AI的‘最优解’,给我带来一次代码被删的愤怒与反思

7