Git 工作流程
Git 有时会让人感到相当困惑,尤其是对于新手程序员而言。面对各种各样的代码提交工作流程模型,很容易让人不知所措。错误在所难免,但正确使用 Git 可以起到安全网的作用,避免这些错误。在本文中,我将尝试讲解团队协作中使用 Git 的基础知识,以及在特定情况下应该如何应对。
基本工作流程
在与他人协作开发代码仓库时,你很可能会频繁地使用 fork 和 pull 功能。fork 本质上是为你创建的个人仓库副本,仅供你个人使用。要 fork 一个仓库,只需点击主仓库页面右侧的“fork”按钮即可。
git clone https://github.com/<username>/<repo>.git <REPO NAME>
git remote add https://github.com/<username>/<repo>.git
在 fork 仓库之后,你需要克隆你的 fork 版本。你可以使用上面第一个代码片段中的命令,在终端中将仓库克隆到任何你想要的目录。第一个代码片段中的最后一个参数是可选的,用于在你想使用新名称保存克隆版本时使用。第二个代码片段会将主仓库设置为你 fork 版本的上游仓库,你需要从上游仓库拉取更改并保持你的主分支是最新的。克隆仓库后,你应该创建一个新分支来开始编写代码。在新分支中工作有很多好处,最主要的是它可以保护你的主分支。
成功克隆仓库后,您就可以安全地进行开发,而不会影响主分支。最佳实践是每次添加新功能时都使用 `git commit` 命令提交更改git commit。提交代码实际上会保存更改的“快照”,您可以使用这些保存的快照来回溯并恢复到代码的早期阶段。完成添加后,您可以使用 `git upload` 命令将代码上传到远程分支的 `master` 分支git push。
最后,当所有更改都准备就绪并推送到主分支后,您就可以向主仓库提交拉取请求 (Pull Request)。在远程分支的 GitHub 页面上,点击“拉取请求”按钮。提交拉取请求后,您需要等待仓库所有者合并或评论您的更改。如果所有者在合并前提出了一些建议,您可以重复上述步骤,将这些更改推送到您的分支。推送更新后的更改会自动更新您的拉取请求。
以上步骤介绍了使用 Git 的基本工作流程,但有时情况会更复杂一些。在团队协作中,你经常会遇到其他程序员同时在同一个代码仓库中工作的情况。为了确保你拥有主仓库 master 分支代码的最新版本,你还需要熟悉一些其他命令。
保持你的分支最新
每次主仓库更新时,你也应该更新你 fork 的仓库的 master 分支。由于我们已经将主仓库的 master 分支指向了我们 fork 的 master 分支的上游分支,我们可以使用 `git pull` 获取更改并保持最新状态git fetch upstream。然后,我们需要使用 `git merge` 将上游仓库的更改合并到我们的 fork 仓库中git merge upstream/master。这样做可以确保我们始终在最新的代码上工作,并降低在发起 pull request 时出现合并冲突的可能性。
正在开发多个功能
如果你同时开发多个功能,最好将它们分开提交。最佳实践是为每个功能创建一个单独的拉取请求。拉取请求必须绑定到 Git 仓库中的独立分支,因此你需要为每个功能创建一个单独的分支。
首先,创建新分支时,务必切换到你所在 fork 的 master 分支。这样可以确保 master 分支作为特性分支的源分支。切换到 master 分支可以使用 `git checkout` 命令git checkout master,git co master简写为 `git checkout`。接下来,你需要使用 `git checkout` 命令为即将开发的特性创建一个新分支git checkout -b <feature_branch>。这不仅会创建一个新分支,还会将目录切换到新分支。要将该分支中的更改上传到远程 fork,可以使用 `git commit` 命令git push --set-upstream origin <feature_branch>。你也可以使用与上面切换到 master 分支相同的 `git checkout` 命令在特性分支之间切换。
希望这篇 Git 教程能帮助你掌握 Git 的基本工作流程。此外,还有许多其他 Git 命令可以为你提供帮助。遇到问题时最好不要惊慌,因为几乎所有 Git 错误都有相应的命令可以修复。
文章来源:https://dev.to/ryanmoragas/git-workflow-4i8b