简介:方法 1:使用 git merge(推荐,保留完整提交历史)步骤切换到 master 分支bash复制下载git checkout master将 main 合并到 masterbash复制下载git...

方法 1:使用 git merge(推荐,保留完整提交历史)

步骤

  1. 切换到 master 分支bash复制下载git checkout master
  2. 将 main 合并到 masterbash复制下载git merge main这会生成一个 合并提交,保留 main 的所有历史记录。如果有冲突,手动解决后 git add 并 git commit。
  3. 推送 master 到远程bash复制下载git push origin master

结果

  • master 分支会新增一个 合并提交,包含 main 的所有更改。
  • 提交历史会显示 main 的 10 次提交 + master 的 2 次提交 + 1 次合并提交。

方法 2:使用 git rebase(线性历史,不推荐新手)

如果你希望 main 的提交在 master 之后 线性排列(而不是合并提交),可以使用 rebase

步骤

  1. 切换到 main 分支bash复制下载git checkout main
  2. 变基到 masterbash复制下载git rebase master这会 重放 main 的 10 次提交 到 master 的最新提交之后。如果有冲突,解决后 git add 并 git rebase --continue。
  3. 切换到 master 并快进合并bash复制下载git checkout master git merge main由于 rebase 后 main 已经基于 master,master 可以直接快进合并。
  4. 推送 master 到远程bash复制下载git push origin master

结果

  • master 分支会包含 main 的 10 次提交 + master 的 2 次提交,没有合并提交,历史是线性的。

方法 3:直接 git reset --hard(强制同步,谨慎使用)

如果你 不关心 main 的提交历史,只想让 master 完全变成 main 的状态(丢弃 master 的 2 次提交):

bash

复制

下载

git checkout master
git reset --hard main
git push origin master --force  # 强制覆盖远程 master

⚠️ 危险操作:这会 丢弃 master 的所有更改,仅适用于你确定 main 的代码是最终版本。

总结

方法适用场景提交历史是否推荐
git merge保留 main 的所有历史有合并提交✅ 推荐
git rebase线性历史,避免合并提交无合并提交⚠️ 适合高级用户
git reset --hard强制同步,丢弃 master 的更改完全替换❌ 谨慎使用

推荐方案

  • 默认用 git merge(保留完整历史)。
  • 如果团队允许,用 git rebase(更干净的线性历史)。
  • 不要轻易 reset --hard(会丢失提交)。

希望这能帮到你!🚀