GIT基本操作培训文档
GIT是什么
GIT下载地址
GIT安装
- MAC
- 在上面的地址下载对应的版本安装即可。在terminal下可以使用git命令.
- Windows
- 在上面的地址下载对应的版本安装,直接一路next使用默认配置即可。建议使用git bash进行操作。
- Linux
- apt-get or yum 直接安装
GIT版本
git --version
GIT定义
GIT是一个开源分布式的版本控制系统。
分开理解一下:
- 控制系统 简单来讲,GIT是一个内容跟踪系统。GIT用于内容的存放,最常用的是用于代码存放--但是GIT不止用于代码存放,其他文件甚至二进制文件也是可以存放的。
- 版本控制系统 存放在GIT仓库中的代码是不断增加、修改或者删除的。多个开发者可能并行的进行相关操作。GIT会维护所有的操作历史记录。GIT提供了分支和合并这些重要特性。
- 分布式 GIT有一个远端的仓库和一个本地仓库。本地仓库分布在每个开发者本地的电脑上。每个开发者本地的仓库包含所有的版本信息,开发者可以不依赖远端的服务器仓库以及其他开发者的本地仓库进行本地的GIT操作。
GIT基本配置
命令
git config
git config --global user.name "js150"
配置全局用户名
git config --global user.email "c855965344395@gmail.com"
配置全局邮箱地址
git config --list
列出当前的配置
配置文件
> git config -e –-system
系统配置文件
> git config -e --global
全局配置文件
> git config -e
库配置文件
Git的三个配置文件读取优先级:库配置文件 > 全局配置文件 > 系统配置文件
GIT基本概念
GIT工作区
[图片上传失败...(image-268ce9-1583937729917)]
GIT文件类型
- blob
- 存放文件的内容
- tree
- 存放指向blob文件的文件名以及对应的目录结构
- commit
- git跟踪记录文件修改的元数据
GIT基本操作
帮助
两种帮助:
git [command] -h
- 简单模式 比如要查看git commit的使用:git commit -h
git [command] --help
git help [command]
- 完整模式 如上查看commit使用:git commit --help.(windows下默认会打开浏览器在浏览器中显示)
建立仓库
两种情况:
git clone
- 这是使用远程仓库的方式,也是我们目前使用代码库的主要工作方式。在使用我们git远程仓库代码时,首先需要clone一份到本地仓库。后续所有的git操作都要基于此本地仓库进行。
git init
- 这是使用本地仓库的创建方式。如果我们需要跟踪我们自己的文件,我们可以创建我们本地的仓库跟踪我们的文件修改。对于存在历史变更的文档,建议大家使用,但不是这里介绍的重点。
提交代码
-
status
git status
应该经常使用,在commit之前先查看一下
git diff
在commit之前**一定**要先diff看看修改了哪些地方,是不是有些不应该提交的内容带进来了。
-
staging
git add dome.txt
staging一个文件
git add file1 file2 file3
可以同时staging几个文件
git add *.php
也可以一次staging一类文件
git add .
如果需要所有文件staging的话,可以使用此命令
-
commit
git commit -m "Add new file."
我们可以使用此命令将add到stage的文件commit到仓库中
git commit -a -m"Modified file.".
对于已经staging过的文件修改,我们可以使用commit -a参数,让git自动将所有staging的文件修改commit到仓库中
git commit file1 file2 -m"Some modify."
我们也能够选择部分被修改的文件进行提交。比如场景:在开发某个feature的过程中需要fix一个紧急bug,这时忘记了stash,修改完了发现之前的feature还没开发完,不能commit,因此只提交bug fix的文件。(不推荐这种做法,尽量先把没做完的stash后重新开始新的bug fix)
-
pull
git pull
从远端仓库将最新的代码更新到本地仓库
git fetch; git rebase
git pull = git fetch + git merge. git fetch只会拉去远端branch的代码到本地仓库,并不会更新到工作区,我们可以手动rebase,这样我们的HEAD就在最上面。推荐这种做法。
-
push
git push origin master
LOG查看
- git log
- 此命令异常强大,配合脚本,可以做很多有意思的事情
- gitk
- 图形方式的log查看,很直观的显示了各个分支的commit node关系
分支管理
git branch test
创建一个test分支
git checkout test
创建一个分支后我们仍在之前的分支,比如master。如果需要到新的分支工作,我们需要先checkout创建的分支,此时工作区的文件内容为对应checkout分支的内容
git checkout origin/master -b master
这是我们实际操作代码库的时候常用命令,checkout远端仓库同时创建本地对应的分支。
git branch
查看本地存在哪些分支,如果需要查看远端服务器有哪些分支,可以加上参数git branch --remotes
Merging
git checkout master;git merge test
运行如上两个命令后,将test分支的修改merge到master分支
Remote
git remote add origin [repository url]
此命令将本地仓库指向远端仓库
git push -u origin master
此命令将本地仓库的内容推送到远端的master分支。实际工作中,一般本地的分支和远端分支是对应的,因此一般只需要进行git push操作就可以了
冲突管理
- 代码提交过程中很难避免出现冲突,如果出现冲突(什么时候出现?pull、merge、rebase),git会将有冲突的地方标识出来。
- 我们可以手工fix这些冲突,也可以运行git mergetool命令调用工具处理冲突,git mergetool默认使用vimdiff来处理冲突。相关使用请参阅其他文档。