Git 常用操作总结

一.简介

git是linus在2005年开源的一个分布式版本管理系统 ;

SVN和CVS:是集中式的必须联网才能工作;版本库挂了,就无法工作;

更加详细介绍参考:http://www.liaoxuefeng.com

git下载地址:http://git-scm.com

 

二.Git 创建版本库(repository)

2.1.第一种方式:init

随便进入一个目录下面,执行git init命令,便创建了一个版本库;初始化后,在当前目录下面就会生成一个.git的隐藏文件夹;这个.git文件夹就是版本库,执行命如下:

$ git init

2.2.第二种方式:clone

 使用克隆,例如克隆dubbo的项目到本地,代码如下所示:

$ git  clone  https://github.com/alibaba/dubbo.git
Cloning into 'dubbo'...
remote: Counting objects: 43552, done.
remote: Compressing objects: 100% (2/2), done.
Receiving objects:  19% (8275/43552), 3.30 MiB | 154.00 KiB/s
....

 二.git全局变量设置

git  config  --global user.name  xialiang          #设置用户名
git  config  --global user.email [email protected]  #设置邮箱
git  config  --global color.ui true                #显示的命令带有样式            
git  config  --list                                #获取Git配置信息
#这些全局配置,会持久化到一个文件中,也可以对这个文件进行直接操作,效果一样
cat ~/.gitconfig

 三.添加以及提交文件

#新建一个文件,这个文件将存放在于工作区
vim  test   

#将这个文件添加到暂存区
git  add test 
git  add -A #将工作区所有的文件都添加到暂存区

#将暂存区的文件提交到版本库
git commit -m ‘add test file’ 
#-m 后面接的是本次提交的备注信息,如果直接git commit 直接提交,会打开一个编辑器让我们填写备注; 
git commit -am 'commit all' #将所有文件一次性提交到版本库,注意,在工作区新建的文件必须走先git add 然后才能添加到版本库

#提交文件后,查看提交的历史信息
git log

 四.查看git状态

#查看当前工作区的状态
git status
#上面的简写,显示更加简洁
git status -s

 五.查看文件的差异

#查看工作区的文件与暂存区的区别
git diff
#查看暂存区的文件与版本库的区别
git diff --staged (我偏向使用这个) 
git diff --cached
#查看版本库中的文件与工作区的文件的区别
git diff head

    如下图所示:

Git  常用操作总结 

测试:将版本库中的文件修改添加到暂存区后,又作修改;此时查看状态应该是这样的

$ git status -s
MM test
 分别用git diff ,git diff head ,git diff --staged进行对比

六.撤销操作

#将工作区的文件回滚到最近一次git commit(回滚到版本库)或git add(回滚到暂存区)时的状态。
git checkout fileName  
#将工作区或者暂存区的文件回滚到最近一次git commit(回滚到版本库)的状态
git checkout head filename
#该命令既可以回退版本,也可以把暂存区的修改回退到工作区
git reset
 温馨提示:

git checkout fileName有两种情况:

一种是文件自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一样的状态;

一种是文件已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

 七.删除文件与重命名文件

#删除版文件
git rm  fileName
#提交后删除文件
git commit 

#删除版本库中,但是保留工作区的文件,此时可以使用git reset进行回退
git rm  --cached fileName
#此时commit,文件会存在于工作区
git commit

#重命名文件
git mv oldFile newFile
git commit
例如修改 aa 为aa.txt
git mv aa aa.txt
git commit -m 'mv aa'

相关推荐