Git 的力量:协作版本控制指南

2025-06-10

Git 的力量:协作版本控制指南

当我开始学习编程时,没人告诉我 Git 是什么,也没人告诉我它为什么重要。我假装自己懂这个词,因为大家都以为我知道它的意思。但在那之前,我一直在用内置 IDE,没用过 Git。我曾经在训练营里做过一个项目,要求提交一定数量的代码才能通过。我当时完全忘了提交,只有大概三次。为了达到要求的提交次数,我把整个项目都重新做了一遍。像我一样,在做一个简单的项目,一个没人会查看或贡献代码的项目,记住提交代码可能不太直观。我当时只想让我的项目尽快完成。现在我知道,我可能之前学习的方法错了。因为进入科技行业后,我会进行协作,而这些工具对于确保良好的合作关系非常有帮助。希望本 Git 初学者指南能够帮助您了解 Git 的实用性以及如何将其用作工具箱的一部分。

什么是 Git?

Git 是一个分布式版本控制系统,允许开发人员管理源代码并协作开展项目。它允许您跟踪文件随时间的变化,并创建一个集中式存储库和全面的更改历史记录,从而实现更无缝的团队合作体验和井然有序的代码管理。

我喜欢将 Git 视为代码的时间机器。

想象一下,你正在写一本书。你从初稿开始,然后不断修改。Git 就像你值得信赖的时光机,让你可以穿越时空,捕捉故事的每个版本。

每次修改你的书,你都会在 Git 中创建一个“提交”,这有点像在特定时刻给你的故事拍张照片。这些提交按时间顺序排列,为你提供写作过程的时间轴。

如果您决定尝试不同的故事情节或角色发展,您可以在 Git 中创建一个新的“分支”。这个分支就像一个平行宇宙,您可以在其中进行更改而不会影响主线剧情。您可以在分支之间切换,探索不同的想法,然后将它们合并回主线剧情。

Git 的版本控制功能让您轻松浏览图书的历史记录。您可以比较不同版本,查看所做的更改,甚至可以根据需要恢复到早期的草稿。

就像时间机器可以帮助作家管理故事的演变一样,Git 可以帮助开发人员跟踪和管理代码库的变化、与他人协作、试验新功能以及创建项目历史记录。

Git 在协作开发中的优势

过去,代码协作通常需要手动共享文件或维护多个版本。如果您足够幸运,您可能不知道这通常会带来多么混乱和低效的后果。Git 通过提供集中式代码存储和变更记录解决了这些挑战。

Git 的功能和优点

  1. 分散式开发- 使用 Git,每个团队成员在其本地机器上都有自己的存储库(也称为本地副本),从而无需互联网连接即可独立工作。

  2. 轻松同步- 通过克隆代码库,团队成员可以创建代码库的本地副本。这意味着每个人都可以使用自己的版本,并且可以使用 Git 在代码库之间共享更改。

Git 入门

如果您想获得一些使用 git 的实践经验,请查看 OpenSauced 的开源课程简介或报名参加我们的其中一个研讨会,这些研讨会列在我们的#100DaysOfOSS 挑战文档的底部。

远程存储库和协作

Git 允许开发人员从远程位置处理同一个代码库,从而实现协作。

克隆存储库

克隆是将远程仓库的副本创建到本地计算机的过程。克隆仓库时,您将创建一个包含完整代码库、提交历史记录、分支以及其他与仓库相关的信息的本地版本。

To clone a remote repository:
$ git clone <repository-url>
Enter fullscreen mode Exit fullscreen mode

分枝

分支和合并允许多个开发人员同时在同一个代码库上工作,并减少冲突的发生。

To create a new branch:
$ git branch <branch-name>
Enter fullscreen mode Exit fullscreen mode

您应该将其替换为新分支的名称。例如,如果您想创建一个名为“feature-x”的分支,则可以使用以下命令:

$ git branch feature-x
Enter fullscreen mode Exit fullscreen mode

提交更改

提交更改是 Git 的核心功能之一。请记住,提交就像截取代码库当前状态的快照。提交消息是对所做更改的描述。以下是示例:

To commit changes:
$ git commit -m "Your commit message"
Enter fullscreen mode Exit fullscreen mode

场景:假设您添加了一项新功能,并希望保存进度。提交更改后,您将在特定时间点创建代码快照,以便轻松跟踪并在需要时进行还原。

推动变革

推送更改意味着您将本地代码更改、提交和分支发送到远程存储库。您将使用本地提交更新远程存储库,并使其他有权访问同一存储库的用户能够访问它们。

To push changes to a remote repository:
$ git push origin <branch-name>
Enter fullscreen mode Exit fullscreen mode

通过推送更改,您保存的本地更改将与其他人共享。其他团队成员可以获取您的更改并将其合并到他们的本地存储库中,从而创建项目的最新版本。

合并和获取

合并:合并是将一个分支或提交的更改合并到另一个分支的过程。

该命令git merge <branch-name>用于将更改从一个分支合并到另一个分支。在这种情况下,<branch-name>请将 替换为要合并到当前分支的分支名称。例如,如果您想将名为“main”的分支的更改合并到当前分支,请使用以下命令:

$ git merge main
Enter fullscreen mode Exit fullscreen mode

场景:您正在进行一个团队项目,需要在不影响主代码库的情况下开发一项新功能。通过创建分支,您可以隔离工作、提交更改,并在准备就绪后将其合并回主分支。如果主分支中已有您需要添加到分支的更新,您也可以将这些更新合并到您的分支中。

提取:从远程仓库检索更改,但不自动将其合并到本地分支的过程。提取时,Git 会比较本地仓库和远程仓库的提交历史记录,识别远程仓库中任何本地没有的新提交或分支。

To fetch changes from a remote repository:
$ git fetch <remote>
Enter fullscreen mode Exit fullscreen mode

有时会发生合并冲突(例如,对同一行代码的更改)。发生这种情况时,Git 会要求您手动解决冲突。

要解决合并冲突,您需要查看冲突的部分,编辑文件消除冲突,然后提交新的更改。

如果您想要同时获取和合并(这很方便但灵活性较低),您可以运行以下命令:

$ git pull origin <branch-name>
Enter fullscreen mode Exit fullscreen mode

Git 存储

假设您正在一个功能分支上工作,但突然需要切换到另一个分支来修复错误。您可以使用 Git 储藏功能临时保存修改,而无需提交未完成的更改或丢失它们。这样,您就可以切换到错误修复分支,解决问题,然后返回到功能分支并应用已保存的储藏,从上次中断的地方继续工作。

要存储您的更改,请运行以下命令:

 $ git stash save "Stash message"
Enter fullscreen mode Exit fullscreen mode

要查看存储列表,可以使用以下命令:

$ git stash list
Enter fullscreen mode Exit fullscreen mode

当您准备将存储的更改应用回工作目录时,请使用以下命令:

$ git stash apply
Enter fullscreen mode Exit fullscreen mode

如果您有多个存储,则可以使用其 ID 或索引 ( ) 指定特定存储git stash apply stash@{2}

如果您不再需要某个存储,您可以通过运行以下命令将其从存储列表中删除:

$ git stash drop
Enter fullscreen mode Exit fullscreen mode

要一步应用存储并将其从存储列表中删除,可以使用以下命令:

$ git stash pop
Enter fullscreen mode Exit fullscreen mode

这相当于运行 git stash apply,然后运行 ​​git stash drop 获取最新的存储。

Git 变基

假设你已经在一个功能分支上工作了一段时间,但在此期间,主分支上出现了几个新的提交。在合并功能分支之前,你可以使用 Git rebase 将主分支上的最新更改合并到你的分支中。这可以确保你的功能分支是最新的,并避免合并过程中的潜在冲突。

以下是如何使用 Git rebase 的概述:

  1. 开始 Rebase:要开始 Rebase,请确保您位于要应用更改的分支(目标分支)。然后,运行以下命令:
   $ git rebase <branch-name>
Enter fullscreen mode Exit fullscreen mode

确保将其替换<branch-name>为包含要应用到目标分支的提交的分支的名称。

  1. 解决冲突:在变基过程中,如果正在应用的提交与目标分支上现有的提交之间存在冲突的更改,Git 可能会遇到冲突。Git 将暂停变基并要求您手动解决这些冲突。您可以使用 Git 的冲突解决工具,例如编辑冲突的文件、选择所需的更改,以及使用git add将冲突标记为已解决。

  2. 继续变基:解决特定提交的冲突后,您可以通过运行以下命令继续变基过程:

   $ git rebase --continue
Enter fullscreen mode Exit fullscreen mode

这将应用已解决的提交并继续执行序列中的其余提交。

  1. 中止变基:如果您决定取消变基,您可以通过运行以下命令中止变基:
   $ git rebase --abort
Enter fullscreen mode Exit fullscreen mode

这会将您的分支恢复到重新定基开始之前的状态。

值得注意的是,Git rebase 通过将一个分支的更改应用到另一个分支上来重写提交历史。

Git 的功能非常丰富,我知道这可能看起来让人眼花缭乱,但你可以把它想象成一个工具箱。里面有很多不同的工具,你可能只知道如何使用锤子里的螺丝刀,但随着你在不同项目中的进展,你可以继续学习如何使用其中的其他工具。当你这样做时,你会发现项目协作变得更加轻松,因为你使用了正确的工具。

鏂囩珷鏉ユ簮锛�https://dev.to/opensauced/the-power-of-git-a-guide-to-collaborative-version-control-dl6
PREV
Bluesky Social Network 是什么?开发者为何对它如此感兴趣?
NEXT
开源 101:初学者入门指南