一、安装git客户端
二、git的简介
1.git是目前最先进的分布式版本控制系统。可以有效、高速的处理从很小到非常大的项目版本管理。
gitlab(git服务端)是一个基于git的远程文件托管平台,本身可以完全做到版本控制,但其所有的内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同事保存在远程,则需要结合git客户端来使用。
2.git的三个区
git有三个工作区,分别是工作区,暂存区和版本区
工作区(working Directory):在本地电脑中能看到的环境。
暂存区(stage):git的版本库里存了很多东西,其中最重要的就是stage的暂存区,还有git为我们自动穿件的第一个分支master,以及指向master的一个指针叫HEAD。
版本库(Repository):工作区有个隐藏目录.git,这个不算工作区,而是git的版本库。
要完成一次完整的提交,需要git add->git commit才可以。
注意:远程分支和git的三个区不属于同一概念,注意区分
3.常见命令整理
1)git clone xxx:将远程git分支文件下载到本地
2)git checkout dev:切换到dev分支
3)git branch:查看当前的git分支状态
4)git add . :将文件夹下的文件夹及文件添加到git的暂存区
5)git commit -m "备注信息在这填写":将本地的缓存及未提交文件提交到版本库
6)git push:将版本库的内容提交到远程分支
7)git reset --hard HEAD^:回退到版本库的上一个版本
8)git reset --hard 版本号:回退到版本库的指定版本号
9)git status:可以显示分支冲突时冲突在哪里
10)git fetch:将远程分支拉取到版本库
说明:git pull和git fetch的区别
11)git merge dev:合并dev的内容到本地来,如果是忽略分支,则是合并当前版本的内容到本地来
12)git diff:查看开发库的代码冲突文件(查看文件后,需要手动合并<<<<<< ============>>>>>>>>>>中的代码内容)
13)git log:查看commit日志()
说明:查看git log中,对应commit的哈希值,结合git reset --hard commit_id,可以回退到对应的commit的内容
14)git reset --mixed:不带任何参数的git reset,即会回退到某个版本,只保留源码,回退commit和index(暂存库)信息
15)git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级,如果还要提交,直接commit即可
16)git reset --hard:彻底回退到上一个版本(后加版本号可以回退到固定版本),本地的源码也会变为上一个版本内容
三、建议
1.在修改大型文件(如rp(原型文件)、sql文件等大文件时,如果拉取发生冲突时,建议先在本地保存一个版本,然后从视图层面修改自己本地的内容,再合并提交,注意不要整个文件替换,那样别人改的内容就没有了)
2)在代码开发过程中,尽量不做相互交叉的业务,防止出现大面积的merge现象
3)及时提交本地代码,如果本地代码不及时提交,再提交代码时可能会出现大量的代码合并现象,并且代码不及时提交,一次性提交,容易造成本地的配置文件或者无关文件提交到服务器,导致服务器报错的现象发生
4)代码提交时,不要忘记push到远程分支,只保存在本地别人拉取不到,容易造成代码冲突和代码覆盖的问题
5)当代码冲突后,一定要合并别人的代码
6)在提交代码前,一定要先拉取,防止出现强制还原别人代码的情况