适合新手的git操作指南

109 阅读4分钟

前言

最近新招了两个实习生,在学校学习的时候只用过svn,对git不是很熟悉,看公司的git协作规范有点懵懵的,给他们整理的一份实用git指南。建议同学们在gitee或者github创建代码仓库来进行学习。

源代码管理工具

  • Git:Git是目前最流行的源代码管理工具之一。它是分布式版本控制系统,允许多个开发者在不同的分支上并行工作,并能够轻松合并更改。GitHub、GitLab和Bitbucket等托管服务也广泛支持Git。
  • Subversion (SVN) :Subversion是一个集中式版本控制系统,它允许多个开发者协作在同一个代码库上工作。虽然不如Git流行,但在某些情况下仍然被广泛使用。

分布式 vs. 集中式

  • Git是分布式版本控制系统,每个开发者都拥有完整的代码仓库的副本。这意味着开发者可以在没有网络连接的情况下工作,并且能够更灵活地处理分支和合并操作。
  • SVN是集中式版本控制系统,代码仓库位于中央服务器上,开发者需要从中央服务器获取代码的副本。这意味着需要网络连接才能进行版本控制操作。

git基础命令

  1. git init 将目录变成Git可以管理的仓库
  2. git status 查看状态
  3. git add 文件名 / git add . 将文件添加到暂存区
  4. git commit -m "本次提交的说明" 将文件提交到仓库
    • 如果公司中有git提交规范,需要按规范来写提交说明,例如修改bug使用: git commit -m hotfix: 描述信息
  5. git push 将代码提交到远程仓库
    • 如果本地分支没有与远程分支建立联系,会提示 The current branch develop has no upstream branch。可以通过命令git push --set-upstream origin 分支名解决,也可以通过git push origin 本地分支名解决
  6. git checkout 分支名 切换分支
  7. git checkout -b 分支名 创建并切换到新分支
  8. git branch 查看分支
  9. git branch -b 查看分支(包括远程分支)
  10. git merge 分支名 将指定分支的代码合并到当前分支
  11. git log 查看git提交记录
  12. git reset --hard commitid号 回退版本,通过git log查看版本记录,找到要回退的commitid号进行回退
  13. git reset 代码已经使用add命令提交到暂存区,可以使用该命令取消add到暂存的操作,更改还会在工作目录中
  14. git checkout . 代码已经使用add命令提交到暂存区,可以使用该命令放弃所有本地更改(包括已暂存的更改),慎用
    • git checkout -- file 恢复指定文件,命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
  15. git stash list 查看暂时不需要添加到暂存区的代码
  16. git stash push 将暂时不需要添加到暂存区的代码临时保存起来,这样我们工作目录就恢复到了干净的状态,开发过程中经常会使用到git stash相关命令
  17. git stash pop 将之前临时保存起来的代码恢复到当前分支

企业常见的git协作流程

一般企业内会维护以下几个分支:

  • master 稳定分支
  • pre 预发分支,与稳定版本服务器、数据库环境一致
  • QA 测试分支,测试环境数据
  • develop 开发分支,开发环境数据

开发流程(QA和pre只是环境不同为了不显啰嗦,这边以master和develop两个例子进行举例)

1.从master分支上拉取最新代码,在此基础上检出一个本地分支,例如bug修复的分支,git checkout -b hotfix-pdx-2023.09.09-xx功能bug修改

2.在本地分支上进行开发,开发完成后,切换到develop分支(从远程develop分支同步到本地的,git fetch origin 获取最新的远程分支信息,git checkout -b develop origin/develop 将远程分支同步到本地),在develop分支上使用git merge hotfix-pdx-2023.09.09-xx功能bug修改将本地分支合并到develop上,在将develop分支push到远程分支,此时会自动触发CI/CD流程进行自动部署,进行测试

3.测试完毕之后,将本地分支push到远程,由项目负责人将此次功能开发的分支合并到master分支进行测试,测试通过后定期清理本地分支及其对应的远程分支

工具推荐

有许多Git可视化工具可供选择,它们提供了图形界面来帮助开发者更轻松地管理和使用Git。

  • SourceTree:SourceTree是一个可视化的Git和Mercurial客户端,使开发者更容易理解和管理版本控制操作。
  • vscode自带插件

工具可以

总结图

6f92bafb0a9c418963b1fe06fbcfd4b.png