git 常用命令及使用方法

一. 配置

在下载安装完git之后要正常的使用配置是必不可少的。

配置根据git使用的范围分为三种级别:

  • system 系统级别
  • global 用户全局
  • local 单独的项目

配置用户名和邮件地址

git config --global user.name "lixiaoming"   //用户名                    
git config --global user.email "[email protected]"    //邮箱 
git config --global core.editor vim    //编辑器

如果想查看所有配置可用下面命令:

git config -l    //列举所有配置               

从服务器更行代码的时候发现每次git pull 都要输入用户名和密码, 这是很烦人的,怎么避免每次都输入呢? 配置好git后,打开 .gitconfig 的文件,在最后加入需在下面两行设置:

[credential] 
     helper = store 

另一种方法是:
打开.netrc, 如果没有新建一个 ~/.netrc 文件, 将 git 服务器, 用户名以及密码记录在这个文件, 如下所示:

machine your-git-server
login your-username
password your-password

普通用户的 git-server 填 github.com 就可以了.
如果有多个 server 就重复上面的三行, 分别输入对应的服务器、 用户名和密码即可.

二. 使用方法

先附上一张图


20161224113648013.jpg

git大致使用流程一般分为三步:

1. 创建远程库

//clone的时候,将其创建成远程创库
git clone --bare   

//远程主分支的一个子分支  
git clone  -b  

// 查看远程服务器地址和仓库名称      
git remote -v     

//下载一个项目和它的整个代码历史
git clone 

//在当前目录新建一个Git代码库
git init

//新建一个目录,将其初始化为Git代码库
git init 

2. 从远程拉取内容

git fetch     //下载远程仓库的所有变动
git merge             //合并
git pull           //效果类似于先git fetch,然后git merge

//取回远程仓库的变化,并与本地分支合并
git pull  

//显示所有远程仓库
git remote -v

//显示某个远程仓库的信息
git remote show 

//增加一个新的远程仓库,并命名
git remote add  

3. 将改动添加到暂存区(工作区的修改提交到暂存区)

//将具体改动文件添加到暂存区                                                  
git add                                                       

//删除工作区文件,并且将这次删除放入暂存区
git rm   ... 

//添加指定目录到暂存区,包括子目录
git add   

//将当前目录的改动添加到暂存区
git add .          

//停止追踪指定文件,但该文件会保留在工作区
git rm --cached                                    

4. 将暂存区的内容提交到版本库

//提交暂存区的单个指定文件到仓库区(会弹出添加提交信息页面)
git commit   

//提交暂存区的多个指定文件到仓库区,直接在后面添加提交信息
git commit   ... -m "message"

//提交暂存所有文件区到仓库区
git commit -m "message"  

//提交暂存区该目录下所有的文件到仓库区                                                      
git commit .  

//修改最后一次提交的信息
git commit -amend  

//重做上一次commit,并包括指定文件的新变化
git commit --amend   ...

//使用一次新的commit,替代上一次提交
//如果代码没有任何新变化,则用来改写上一次commit的提交信息
git commit --amend -m [message]

//提交工作区自上次commit之后的变化,直接到仓库区
git commit -a

//提交时显示所有diff信息
git commit -v

5. 上传修改到远程分支

就是将自己的改动上床到服务器

//push所有分支
git push   

git push    

//将本地主分支推到远程主分支        
git push origin master    

//上传本地指定分支到远程仓库
git push  

//强行推送当前分支到远程仓库,即使有冲突
git push  --force

//推送所有分支到远程仓库
git push  --all
20161224113906936.png

在实际开发过程中只通过以上三步是不够的,下面介绍一些其他经常用到的命令。

三. 常用命令

1. 抛弃工作区修改

(用暂存区的内容状态去覆盖工作区,所以这样做就可以抛弃工作区修改

git checkout                              
git checkout .     
                      
git reset        //从暂存区恢复到工作区                     
git reset .            //从暂存区恢复到工作区                       
git reset          //恢复到指定的提交版本,该id之后的版本提交都恢复到工作区             
git reset --hard   //恢复到指定的提交版本,该id之后的版本提交全部会被抛弃,将不出现在工作区

2. 恢复某次提交

git revert               
git revert HEAD 

revert与reset的区别:git reset 是把HEAD向后移动,而git revert是HEAD向前移动。

3. 文件比较差异

git diff                                                   
git diff   //比较工作区与暂存区文件的差异           
git diff --cached   //比较暂存区和版本库差异
git diff   //比较两次提交之间的差异             
git diff   //在两个分支之间比较                                       

4. 创建,切换和删除分支

(1) . 查看分支

git branch   //列出所有本地分支
git branch -r  //列出所有远程分支
git branch -a   //列出所有本地分支和远程分支

(2) .创建分支

git branch   //新建一个分支                                                        
git branch --merged   //查看已经被合并到当前分支的分支          
git branch --no-merged    //查看未被合并到当前分支的分支

//新建一个分支,并切换到该分支
git checkout -b 

//新建一个分支,指向指定commit
git branch  

//新建一个分支,与指定的远程分支建立追踪关系
git branch --track  

//建立追踪关系,在现有分支与指定的远程分支之间
git branch --set-upstream  

//合并指定分支到当前分支
git merge 

//选择一个commit,合并进当前分支
git cherry-pick 

(3).切换分支

//切换到指定分支,并更新工作区
git checkout 

//创建分支并切换            
git checkout -b            

(4). 删除分支

//删除分支
git branch -d     

//强制删除分支                                                
git branch -D    

//删除远程分支
git push origin --delete 
git branch -dr           

5. 删除文件的几种方法

rm    //直接在工作区删除文件对暂存区、版本库没有任何的改变,文件依旧存在                                                                         
git rm   //删除会影响到工作区以及暂存区,不仅在工作区将文件删除,同时将该删除操作提交到暂存区  

6. 撤销修改

//恢复暂存区的指定文件到工作区
git checkout 

//恢复某个commit的指定文件到工作区
git checkout  

//恢复上一个commit的所有文件到工作区
git checkout .

//重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git reset [file]

//重置暂存区与工作区,与上一次commit保持一致
git reset --hard

//重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
git reset 

//重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
git reset --hard 

//重置当前HEAD为指定commit,但保持暂存区和工作区不变
git reset --keep 

//新建一个commit,用来撤销指定commit
//后者的所有变化都将被前者抵消,并且应用到当前分支
$ git revert                                      

7. 查看当前信息

//显示有变更的文件
git status

//显示当前分支的版本历史
git log

//显示commit历史,以及每次commit发生变更的文件
git log --stat

//显示某个文件的版本历史,包括文件改名
git log --follow 
git whatchanged 

//显示指定文件相关的每一次diff
$ git log -p 

//显示指定文件是什么人在什么时间修改过
git blame 

//显示暂存区和工作区的差异
git diff

//显示暂存区和上一个commit的差异
git diff --cached 

//显示工作区与当前分支最新commit之间的差异
git diff HEAD

//显示两次提交之间的差异
git diff ...

//显示某次提交的元数据和内容变化
git show 

//显示某次提交发生变化的文件
git show --name-only 

//显示某次提交时,某个文件的内容
git show :

//显示当前分支的最近几次提交
$ git reflog

你可能感兴趣的:(git 常用命令及使用方法)