工作中如何高效使用Git,这篇文章能解答吗?
摘要:本文将从 Git 入门到进阶、由浅入深,从常用命令、分支管理、提交规范、vim 基本操作、进阶命令、冲突预防、冲突处理等多方面展开,足以轻松应对工作中遇到的各种疑难杂症,如果觉得有所帮助,还望看官高抬贵手给个赞呗,感谢!
虽
本文将从 Git 入门到进阶、由浅入深,从常用命令、分支管理、提交规范、vim 基本操作、进阶命令、冲突预防、冲突处理等多方面展开,足以轻松应对工作中遇到的各种疑难杂症,如果觉得有所帮助,还望看官高抬贵手给个赞呗,感谢!
虽说现在工作中使用 Git 都会用一些图形化管理工具来提高开发效率。可事实上使用图形管理化工具的前提,也是基于对命令都基本了解。还有比如我平时用的工具 Github Desktop 因为不带第三方合并工具,只能手动解决冲突,而且有的功能没有,只能配合自己手动敲命令。
即使是工具也没有那么完美的工具,掌握命令才是渔,工具只是鱼。其他的 Git 可视化管理工具比如:小乌龟、SourceTree、还有我们开发用的 IDE 集成的,本篇不过多介绍。
基本概念
Git 是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
Git 的作用与好处是:
可以帮我们保存文件的所有修改记录,并且使用版本号进行区分,让我们随时可以浏览历史版本、对比不同版本的差异、还原到指定版本,起到恢复和保护作用的同时,还能和其他人同时修改,然后通过 Git 来合并修改的部分文件,超级方便。主要有以下特点:
分支更快、更容易。
支持离线工作;本地提交可以稍后提交到服务器上。
Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。
Git 中的每个工作树都包含一个具有完整项目历史的仓库。
没有哪一个 Git 仓库会天生比其他仓库更重要。
不熟的同学别和 Github 搞混了,Git 是工具,Github 是平台,没有什么必然的联系,就像 Java 和 JavaScript 也没有什么必然联系一样
Github 是一个主流的代码托管平台。可以理解为存放和管理代码的网盘,可以把自己的代码传上去进行共享和维护。
安装配置
安装地址:Git - Downloads (git-scm.com)
安装好后,命令行窗口是使用 Git Bash、CMD、Powershell、终端、或者编译器内置的都行,这个就看个人喜好。
接着可以再配置下默认用户名和邮箱,比如配置全局的就用如下两条命令,替换成自己的用户名和邮箱,以后所有的项目都会默认这里配置的用户信息
git config --global user.name 'xxxx'
git config --global user.email 'xxxx@xx.com'
如果只需要在某个特定的项目中用其他的名字和邮箱,不用全局的,就把上面命令中的 --global 去掉在项目下执行即可,或者不执行命令,直接在项目下的 .git/config 文件里添加如下,也可以
# xxx 指的是填你自己的用户名和邮箱,不是真的写 xxxx 上去
[user]
name = xxxx
email = xxxx@xx.com
基本操作
先了解一下几个基本概念:
工作区:开发的地方,开发过程就是对工作区的操作
暂存区:执行 git add xxx 命令后,会把当前修改过的文件添加到暂存区
本地仓库:执行 git commit 命令完成后,会把当前暂存区的文件放入本地仓库
远程仓库:就是用来托管代码的服务器(如:Github、Gitee、GitLab、工蜂、Bitbucket..),执行 git push 命令后,会把本地仓库的文件提交到远程仓库
常见选项
再认识一下几个后面会用到多次的命令。
命令
缩写
意思
--all
-a
全部
--force
-f
强制
--delete
-d
删除
--delete --force
-D
强制删除
--move
-m
移动或重命名
--move --force
-M
强制移动或重命名
-u
设置默认远程分支
基本用法
上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。
git add *files* 把当前文件放入暂存区域。
git commit 给暂存区域生成快照并提交。
git reset -- *files* 用来撤销最后一次git add *files*,你也可以用git reset 撤销所有暂存区域文件。
git checkout -- *files* 把文件从暂存区域复制到工作目录,用来丢弃本地修改。
你可以用 git reset -p, git checkout -p, or git add -p进入交互模式。
也可以跳过暂存区域直接从仓库取出文件或者直接提交代码。
git commit -a 相当于运行 git add 把所有当前目录下的文件加入暂存区域再运行。
