first-contributions 实战从本地仓库与远程 Fork 中安全删除分支的完整指南【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions本指南围绕 first-contributions 项目提供的分支清理流程展开。当你跟随 README.md 完成fork → clone → 新建分支 → 提交 → Pull Request的标准贡献流程后 这类一次性特性分支便完成了使命需要被及时清理。读完本文你将掌握git checkout、git merge、git branch -d与git push origin --delete的完整组合用法并理解为何在 Pull Request 被合并之前绝不能删除远程分支。一、为什么需要删除已合并的分支在 first-contributions 的教学流程中README.md 引导贡献者创建类似add-alonzo-church这样高度个性化的分支名文中以add-seu-nome占位符表示。这种命名方式直白地体现了分支的单一目的性它只为承载一次贡献而生。如 removing-branch-from-your-repository.pt_br.md 所述当 Pull Request 提交成功后该分支的使命即告结束。保留大量一次性分支会让本地仓库与远程 Fork 逐渐变得杂乱后续切换分支、同步上游时容易混淆。因此在 PR 被合并后及时清理分支是保持仓库整洁的习惯性操作——这一步并非强制要求但值得养成。二、删除本地分支前的准备工作合并与切换在删除本地分支之前必须先将其内容合并回主分支master否则分支上独有的提交会丢失。整个流程分两步走第一步切换到主分支git checkout mastergit checkout用于切换当前工作区所在的分支。只有在不在 master 分支上的情况下执行该命令才有意义若你当前就在 master此命令不会产生副作用。第二步将功能分支合并到 mastergit merge add-seu-nome master注意此命令的语义git merge第一个参数是要被合并进来的分支add-seu-nome第二个参数是目标分支master。由于 Git 允许在任意分支上指定合并目标这条命令等同于「把add-seu-nome的提交并入 master」。若你当前已在 master 上更常见的等价写法是git merge add-seu-nome合并完成后add-seu-nome分支上的全部提交都已进入 master此时该分支不再拥有任何「独有提交」删除它是绝对安全的。三、删除本地分支git branch -d与-D的区别合并成功后执行git branch -d add-seu-nome-d--delete是安全删除模式Git 会先检查该分支是否已完全并入当前分支或其他分支只有当分支的提交都已合并时才会真正删除。如果分支上存在未合并的提交-d会直接报错拒绝删除从而保护你可能尚未保留的工作成果。与之相对的-D--force则是强制删除无论分支是否已合并都会直接移除。新手在清理分支时应始终优先使用-d让 Git 替你把关只有确认分支内容确实无用例如实验失败的分支时才考虑-D。执行成功后add-seu-nome即从你的本地机器仓库中消失工作区恢复整洁。四、删除远程 Fork 分支时机与git push origin --delete本地分支删除后你的 GitHub Fork 中仍然保留着同名远程分支。此时需要特别警惕你正是从这个远程分支向 first-contributions 上游仓库提交了 Pull Request。因此除非你的 Pull Request 已经被上游仓库维护者合并否则绝对不要删除该远程分支。原因很直观如果 PR 尚未合并维护者仍可能要求你在该分支上继续补充提交amend、rebase删除远程分支会导致 PR 失去对应的分支引用而无法继续更新。这一点在 additional-material.pt_br.md 中同样被强调——该文档明确标注「仅在 Pull Request 被合并之后才执行这些步骤」。当确认 PR 已合并后删除远程分支的命令为git push origin --delete add-seu-nome--delete是git push的删除分支选项等价于git push origin :add-seu-nome。这里的origin指向你 Fork 的远程仓库地址该命令会向 GitHub 发送删除请求随即远程分支被移除。若你希望同时在本地与远程两侧都清理干净将第三步与第四步的命令顺序执行即可两条命令相互独立不存在依赖关系。五、清理之后保持 Fork 与上游同步删除分支只是「整理」的第一步。随着时间推移first-contributions 上游公共仓库会不断积累新提交而你本地机器与 Fork 上的 master 分支会逐渐落后。为了让两个仓库始终与上游保持一致请继续参考同步流程Mantendo o seu Fork sincronizado com este repositório葡萄牙语版该文档演示了典型的开源协作「三角工作流」git remote add upstream添加上游仓库、git fetch upstream抓取上游更新、git rebase upstream/master变基到主分支、最后git push origin master将更新推回自己的 Fork。核心命令概览git status # 确认当前处于 master git remote add upstream url # 添加上游远程仅首次需要 git fetch upstream # 抓取上游所有更新 git rebase upstream/master # 将上游提交变基应用到本地 master git push origin master # 推送本地更新到自己的 Fork六、完整流程速查将以上各节串联起来一次干净利落的分支清理与同步过程如下# 1. 切换到主分支 git checkout master # 2. 将功能分支合并进主分支 git merge add-seu-nome master # 3. 安全删除本地分支仅当已合并成功 git branch -d add-seu-nome # 4. 确认 PR 已被合并后删除远程 Fork 分支 git push origin --delete add-seu-nome # 5.可选同步上游更新 git remote add upstream url git fetch upstream git rebase upstream/master git push origin master七、常见误区与注意事项误用-D丢提交git branch -D不会检查合并状态误删未合并分支后提交会从分支引用中「消失」仍可通过 reflog 找回但成本高昂。习惯性使用-d是安全底线。过早删除远程分支PR 未合并就执行git push origin --delete会让贡献流程中断。删除前务必确认 PR 状态为已合并。混淆origin与upstreamorigin是你的 Forkupstream是上游公共仓库。删除分支应针对origin同步更新则同时涉及两者。相关概念可进一步查阅 keeping-your-fork-synced-with-this-repository.pt_br.md。相关资源分支创建与贡献全流程README.md本指南原始英文版removing-branch-from-your-repository.md其他语言版本可参考中文版、韩文版、土耳其文版分支清理在整个进阶材料中的定位additional-material.pt_br.md【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考