Git 的正确使用姿势与最佳实践:团队协作和版本控制的最佳实践 | 豆包MarsCode AI刷题

10 阅读4分钟

Git 的正确使用姿势与最佳实践:团队协作和版本控制的最佳实践

Git 作为一款功能强大、分布式的版本控制系统,已然成为行业标配。掌握 Git 的正确使用姿势与最佳实践,不仅能提升团队开发效率,还能保障项目代码的有序管理与稳健迭代。

基础概念

仓库(Repository) 既是代码的存储中心,也是版本演进的记录载体,分为本地仓库(local repository)与远程仓库(remote repository),本地仓库助开发者独立工作、暂存代码变更;远程仓库(像 GitHub、GitLab、Bitbucket 等平台所托管的)则实现团队成员间代码共享与协同。本地仓库是在本地上存储项目版本历史记录的地方。是一个隐藏的目录(通常名为.git),位于工作区的根目录下

工作区(Working Directory) 是开发者在本地计算机上直接进行代码编写、文件修改等操作的实际目录。包含了项目的所有文件和子目录

暂存区(Staging Area) 暂存区是一个临时存储区域,用于存放即将被提交到本地仓库的修改。

分支(Branch) 是开发并行线,主分支(master)存储稳定可部署代码,功能分支从其派生专注单个特性或功能开发,修复分支应对紧急 bug,借分支隔离工作、灵活调配开发资源、降低风险。

git实践流程图

QQ_1732862326035.png

工作区到暂存区

初始状态:在工作区,文件可以是未被 Git 跟踪的(Untracked)状态。当开始一个新项目并在项目文件夹初始化 Git 仓库(git init)或者克隆一个远程仓库(git clone [远程仓库URL])后,工作区就建立起来了。

新创建的文件或者还未被 Git 管理的已有文件处于未跟踪状态,例如,在项目目录下新建了一个配置文件config.yaml,此时它就是未跟踪的

添加到暂存区(Add):当对工作区的文件进行修改或者新增文件后,使用git add命令将这些文件添加到暂存区。这个操作实际上是将工作区中文件的修改内容复制到暂存区。

例如,你修改了一个代码文件main.java并且希望将这个修改记录下来,你可以执行git add main.java,这样修改后的main.java的内容就被添加到了暂存区。

如果有多个文件需要添加,可以使用git add file1.java file2.java

暂存区到本地仓库

提交操作(Commit):在暂存区准备好要提交的修改后,使用git commit -m "提交说明"命令将暂存区的内容提交到本地仓库。一个提交(Commit)就像是项目在某个特定时刻的一个快照,包含了当时被提交的文件的内容、作者信息、提交时间以及提交说明等。

例如,完成了一个功能模块的开发,将相关文件添加到暂存区后,通过git commit -m "完成功能模块X的开发"就将这些修改记录为一个新的提交存储在本地仓库中。

每次提交都会在本地仓库中创建一个新的节点,这些节点通过指针连接形成一个版本演变的历史记录,可以通过git log命令查看。

本地仓库与远程仓库

推送操作(Push):当在本地仓库完成了一系列的开发和提交,并且希望将这些修改分享给团队成员或者备份到远程服务器时,需要将本地分支推送到远程仓库。执行git push [远程仓库名] [本地分支名]命令来完成推送。

例如,你在本地的feature - X分支上完成了新功能的开发并且已经提交到本地仓库,你可以执行git push origin feature - X将这个分支推送到名为origin的远程仓库(这里origin是远程仓库的别名,通常在克隆远程仓库时自动设置)。如果远程仓库中不存在与本地分支对应的分支,Git 会在远程仓库中创建一个新的分支

拉取操作(Pull):为了保持本地仓库与远程仓库同步,需要从远程仓库获取最新的修改。通过git pull命令实现,它是git fetchgit merge的组合。git fetch会从远程仓库获取最新的提交,但不会自动合并到本地分支,只是将远程分支的更新下载到本地的远程分支引用中。git merge则会将获取到的远程分支的更新合并到本地对应的分支。

例如,团队中的其他成员在远程仓库的master分支上推送了新的提交,可以在本地执行git pull origin master来将这些更新合并到本地的master分支。如果只想获取远程更新但不想立即合并,可以使用git fetch命令,然后根据需要手动进行合并操作