GitHub团队项目合作流程
在团队项目中,GitHub工作流的优化至关重要。通过更好的分支管理和协作流程,可以减少代码冲突,提高开发效率,确保项目的稳定性和可维护性。这篇文章将探讨如何有效运用这些方法,提升团队协作的质量。
本学习笔记源视频:
GitHub 工作流 —— B站 @码农高天
术语
- Git: 一种非常常用的版本控制工具。
- GitHub: 一个支持使用 Git 修改并存储文件的平台。
- Remote: 远程仓库,通常指如 GitHub,Gitlab 或 Gitee 等平台。
- Local: 在本文中指在本地存放的仓库,该仓库启用了 git 版本控制工具管理。
- Disk: 在本文中指用编辑器打开磁盘中源文件的状态。
- main(master): Git 主分支的默认名称,2021年前后主分支的默认名称由 master 更改为 main。
- Pull Request: 在团队项目中向主分支或其他分支提出代码合并请求。
- Squash and Merge: 将多个提交(commits)压缩为一个单一提交,然后合并到目标分支的操作。
复制阶段
将远程仓库复制到本地:
git clone https://github.com/example/example.git
修改阶段
建立新分支:
git checkout -b my-feature
查看当前修改过的文件与 Git 中保存文件的区别:
git diff
将修改的文件告知 Git(将文件添加到暂存区):
git add <changed_file>
将修改提交到 Git:
git commit
推送阶段
将修改过的代码推送到 GitHub:
git push origin my-feature
若此时 GitHub 上的主分支有其他新的提交记录,需要检查 my-feature 分支是否还可以继续推送。
需要先回到主分支:
git checkout main
同步 GitHub 中最新的主分支到 Local Git 仓库:
git pull origin main
将分支切换到 my-feature 分支:
git checkout my-feature
同步主分支的变化:
这一步的目的是将当前分支的更改重新基于最新的
main
分支之上。具体操作中,Git 会取出当前分支与main
分支的共同祖先提交之后的所有提交,将这些提交临时移出,然后将当前分支“移动”到main
分支的最新状态,最后把刚才移出的提交应用到新的main
分支之上。这样做的结果是,当前分支的提交历史看起来像是基于最新的
main
分支,可以使代码历史更清晰。但要注意,在 rebase 过程中可能会遇到冲突,需要手动解决这些冲突才能完成 rebase。
git rebase main
将修改好的代码再次同步到 Remote:
因为我们上一步做了 git rebase,此时需要强制推送。
git push -f origin my-feature
合并分支阶段
发送一个 Pull Request 请求:
作者在审查完代码后,使用 Squash and merge 合并分支:
由于 feature 分支的提交记录一般都比较繁杂,使用 Squash and merge 可以将所有变动合并成一个提交记录,避免将其他繁杂的提交记录合并到主分支上。
删除多余分支
GitHub 上可以非常方便的删除不需要的分支,但我们还需要删除本地不需要的分支。
切换到主分支:
git checkout main
删除 my-feature 分支:
git branch -D my-feature
最后再从 Remote 同步一次,确保本地 Git 仓库与 GitHub 上一致:
git pull origin main
评论已关闭