概述
GIT是一个开源的分布式的版本控制系统,是由Linus 为了管理Linux内核开发而开发的一个开源的版本控制软件。相比SVN,它采用分布式版本库方式。
工作区,暂存区和版本库
左侧为工作区,编辑文件所在的目录,右侧为版本库,其中index区域是暂存区,标记为"master"代表master主分支。
基本操作指令
1.创建仓库
a.当前目录创建仓库
git init
b.指定目录创建仓库
git init 目录名
2.设置配置
a.全局配置
git config --global user.name woniu
git config --global user.email woniu@163.com
b.设置本地仓库配置
git config --local user.name woniu
git config --local user.email woniu@163.com
c.查看配置信息
git config --global --list
3.工作区文件新增到暂存区
a.提交指定文件
git add a.cpp
b.提交当前目录所有文件
git add .
c.把提交过暂存区,已经发生改变的文件再次提交到暂存区
git add -u
4.暂存区文件提交到版本库
git commit -m "初始版本"
5.查看git提交日志
a.全部日志
git log
b.简化日志
git log --oneline
c.查看前5个日志
git log -n5 --oneline
d.查看所有日志
git log --all
e.图像化查看所有日志
git log --all --graph
f.图形化界面查看
gitk
6.查看上次提交后是否有修改
git status
7.查看差异
a.查看工作区与暂存区差异
git diff
b.查看暂存区与仓库之间的差异
git diff --cached
c.比较不同commit的差异
git diff HEAD1 HEAD2
8.清空暂存区,工作区修改
git reset --hard
9. 删除工作区和暂存区文件
git rm 文件名
10.重命名文件
git mv a.cpp b.cpp
11.版本回滚
a.恢复暂存区和HEAD一致
git reset HEAD
b.恢复暂存区指定文件与HEAD一致
git reset HEAD -- 文件名
c.恢复工作区与暂存区一致
git checkout -- 文件名
d.回退到指定commit,会清楚之后提交的commit
git reset --hard HEAD
分支管理
1.创建分支
a.直接创建
git branch dev(分支名)
b.基于某个历史版本创建分支
git branch dev HEAD
2.查看分支
git branch -av
3.删除分支
git branch -d dev(分支名)
4.切换分支
git checkout dev
5.查看分支差异
a.查看分支差异
git diff dev master
b.查看分支指定文件差异
git diff dev master -- index
6.本地仓库推送到远端仓库
a.Git代码托管平台创建仓库
http地址:https://gitee.com/woniu/git-test.git
b.本地仓库与远端仓库关联
git remote add origin https://gitee.com/woniu/git-test.git
c.如果远端仓库是空的
git push -u origin master
一般远端仓库都会有readme文件,解决方案
git pull --rebase origin master
d.提交到远程仓库
git push origin master
7.拉取远程分支
a.拉取远程分支,默认拉取主分支
git clone https://gitee.com/woniu/git-test.git
b.拉取远程指定分支
git clone -b dev https://gitee.com/woniu/git-test.git
c.拉取主分支后,基于远端指定分支本次创建新分支
git branch -av 红色部分代表远端分支
git branch dev origin/dev 基于远端的dev分支本次创建dev分支
总结
Git已经成为目前最流行的版本控制工具,一些大公司逐渐从SVN过度到Git,熟练使用Git成为了程序员的必备技能,本篇文章几乎覆盖了常用操作指令,希望对大家有帮助。