Git的正确使用姿势与最佳实践|青训营

Git简介

  1. Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。
  2. Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。
  3. Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。

Git基本命令

创建版本库

版本库又名仓库,英文名Repository,可以简单'理解成一个目录,这个目录里面的所有文件都被Git管理起来, 每个文件的修改、删除,Git都可以跟踪到,以便任何时刻都可以追踪历史,或者在将来某个时刻可以"还原"。

首先我们选择一个合适的位置,创建一个gitspace空目录(可选),用作以后存储和创建本地版本仓库,在gitspace中创建一个learngit空目录,并切入:

$ mkdir learngit #创建
$ cd learngit #切换
$ pwd #显示当前盘符路径
/d/gitspace/learngit

温馨提示:如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)均不包含中文。

然后通过git init命令把这个目录变成Git可以管理的仓库:

$ git init Initialized empty Git repository in D:/gitspace/learngit/.git/

瞬间Git仓库就建好了,而且告诉你这是个空仓库(empty Git repository),打开learngit目录可以发现多了一个.git目录,这个目录是Git用来跟踪管理版本仓库的,千万不要乱修改和删除这个目录中任意文件,否则这个git仓库就被你破坏了。

向本地git版本仓库中提交文件

第一步add到暂存区:

$ git add readme.txt #添加到暂存区

再查看状态:

$ git status #查看当前git状态(readme.txt被添加到暂存区)

第二步commit到本地版本仓库

$ git commit -m "wrote a readme file"

简单解释下git commit -m "记录提交内容"命令,-m 后面写的是本次提交的记录内容,当然最好是有意义的,这样就能从历史记录中清楚的知道每次的改动的内容和操作。当然也可以不写,但是对于你自己可能清楚你每一步都干了啥(前提还是提交此处不是很多的时候),如果你在团队开发中做了提交不写记录内容,别人就没办法知道你做了哪些修改操作,所以说可读性非常重要,记录内容是必要的!!!

为什么Git提交文件需要两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件:

$ git add file1.txt

$ git add file2.txt file3.txt

$ git commit -m "add 3 files."

版本回退

想回退历史: git log命令查看以便回到哪个版本;

想重返未来版本: git reflog命令查看每个版本的commit id,直接git reset --hard commit_id即可。

撤销修改

如果你不想提交,可以使用git restore file命令撤回操作,也可以使用git checkout -- file命令这两个命令作用是一样的,但是我们推荐使用前者,因为checkout后续我们在分支管理上经常用到,经常用到,而且中间要加上--,否则意思是切换到指定分支,以防使用混乱,还是使用restore更为方便些:

$ git restore readme.txt
$ git status #查看当前状态
On branch master

nothing to commit, working tree clean

团队协作流程

个人使用流程:拉取:fork => clone => pull

团队协作流程:提交 pull request ,接收pull request

提交pull request

项目的team loader 接收到pull request请求,进行代码检测,决定是不是要合并到代码

项目提交代码

提交代码总共有以下两种方式

1、通过pull、push拉取和推送

优点:合并和提交、推送方便,能够同团队集中式协作

缺点:合并和提交都需要授权,出现恶意推送可能导致代码丢失,难以提前防范

2、使用fork与request拉取和推送

优点:能够进行团队分布式协作,不需要授权,只需要可见即可,代码需要由有权限的人审查合并,可防止恶意推送

缺点:除了pull和push,还需要fork和pull request

pull request具体操作

自己将本地编辑好的代码推送远程仓库 => 找到pull request => 输入项目的源路径推送即可

team loader收到pull request将代码检查一下=> 然后合并到项目远程仓库里面=> 这样就完成了多人写作开发

总结

Git是是目前非常受欢迎的分布式版本控制系统,使用git可以让团队协作的效率大大提高,团队成员可以各自独立的修改代码,然后再将修改的代码提交,如果发现有修改错误还可以很方便的回溯到之前的版本。这对于团队开发来说简直就是福音! 所以我们应该好好学习并掌握git,这样才能在以后的团队协作过程中得心应手,提高效率。

相关推荐
夭要7夜宵4 天前
Go 垃圾回收 | 豆包MarsCode AI刷题
青训营笔记
末班车4225 天前
前端框架中的设计模式 | 豆包MarsCode AI刷题
青训营笔记
VanceLLF5 天前
神奇数字组合 | 豆包MarsCode AI刷题
青训营笔记
lann6 天前
Go 程序的优化 | 豆包MarsCode AI刷题
青训营笔记
用户52281271049786 天前
性能优化与调试技巧 | 豆包MarsCode AI刷题
青训营笔记
千慌百风定乾坤8 天前
Go 语言入门指南:基础语法和常用特性解析(下) | 豆包MarsCode AI刷题
青训营笔记
FOFO8 天前
青训营笔记 | HTML语义化的案例分析: 粗略地手绘分析juejin.cn首页 | 豆包MarsCode AI 刷题
青训营笔记
滑滑滑10 天前
后端实践-优化一个已有的 Go 程序提高其性能 | 豆包MarsCode AI刷题
青训营笔记
柠檬柠檬10 天前
Go 语言入门指南:基础语法和常用特性解析 | 豆包MarsCode AI刷题
青训营笔记
用户9671363996510 天前
计算最小步长丨豆包MarsCodeAI刷题
青训营笔记