git常用命令总结

一、Git代码状态转换图

git常用命令总结_第1张图片

其中:

  • 未被Git跟踪的状态为unstage状态;
  • 已被Git跟踪的状态为stage状态(stage:阶段),因此包括staging状态和staged状态。

      untrack files:是指尚未被git所管理的文件;changed but not updated:是指文件被git管理,并且发生了改变,但改动还没被git管理;这两种状态,都可以看成是改动还没被git管理的状态,我们这里称unstage状态。
staging是commit和未管理之间的一个状态,也有别名叫index状态,也就是git已经管理了这些改动,但是还没完成提交。changes to be commited是指进入staged状态的文件。
.gitignore中的文件,不会出现在以上三个状态中。
注:

  • 这个图也解释了为啥从远端库拉代码,不需要add、commit。
  • 代码一旦修改,就会成为未被git库跟踪的状态。需要add、commit。

二、大白话Git

1、Git 管理代码,保证代码版本迭代连续性,即:向A分支merge或者push代码时,A分支代码必须是当前代码的上一个版本,不然会产生冲突。(换句话说:Git确保当前的本地的代码为最新)

2、Git有修改就有提交,就有新的代码版本,git管理维护的是修改。

3、Git分支存储的是代码副本。

4、push :实际上就是将本地分支合并到远端库分支;pull:实际就是将远端分支合并到本地分支。

三、安装git和基本用法

  1、从git 官网下载程序,默认安装即可。

  2、设置账号和邮箱关联,账号和邮箱可以是码云、GitLab...的账号都行:

$ git config --global user.name "Your Name"             
$ git config --global user.email "[email protected]"

  3、选择合适地方,创建空目录:

$ mkdir test        //创建空目录,目录名字为test
$ cd test        //进入test目录

  4、初始化仓库,把目录变成git 可以管理的仓库:

$ git init
$ ls         //查看文件
$ ls -ah       //如果.git目录是影藏的话,可以通过这个命令查看.git目录

  5、提交文件到git 上

$ git add .                  //告诉Git,把文件添加到仓库,此时是将修改添加到暂存区,可add 多次
$ git commit -m '本次提交的备注'       //告诉Git把文件提交到仓库,此时是吧暂存区的所有内容提交到当前分支,可一次提交很多文件

  6、查看当前仓库的状态

$ git status    //查看版本库状态,什么被修改过但还没提交的

$ git diff      //查看当前相对上一次提交修改的内容

  7、版本回退

$ git log                         //显示从最近到最远的提交日志
$ git log   --pretty== oneline     //显示log,但是不显示很多凌乱的信息
q                                //显示log版本信息有很多,使用q键停止查看
git reset —hard head^         //回退到上一个版本
git reset —hard head^^        //回退到上上个版本
git reset —hard head~100      //回退到之前100个版本
git reset —hard +commit_id    //回到某个版本号的版本

git reset — hard 版本号     //版本回退多次后需要恢复最新版本

$ git reflog                     //查看曾经使用过的命令

  8、撤销修改

$ git checkout -- test.html

  9、删除文件

$ rm test.index     //可直接在文件管理中删除文件,要不用rm 命令去删除

$ git rm test.html    //从版本库中删除
$ git commit -m '删除 test.html文件'
$ git branch -D      //丢弃一个没有被合并过的分支,可以通过强行删除。

远程仓库 

  1、创建SSH Key(需要生成 id_rsa私钥 和 id_rsa.pub公钥 两个文件)

$ ssh-keygen -t rsa -C "[email protected]"

  2、登录GitHub,设置"SSH Keys",复制 id_rsa.pub 内容去添加。可允许添加多个SSH。

  3、关联远程仓库

$ git remote add origin [email protected]:账户名

  4、将本地的内容推送到远程库分支上

$ git push -u origin 分支名字       //第一次推送分支所有内容
$ git push origin 分支名字          //推送最新修改

  5、查看远程仓库信息

$ git remote 

$ git remote -v      //查看更加详细的信息

克隆

$ git clone 需要克隆的仓库地址

创建分支,并且切换过去

$ git checkout -b 新分支的名字       //创建分支并且切入进分支

或者等同于

$ git branch 分支名       //创建分支
$ git checkout 分支名     //切换到分支
$ git branch               //查看分支

合并分支

$ git checkout -b dev
$ git branch
$ git add .
$ git commit -m '提交test文件到dev分支'
$ git checkout master     //切换到主分支
$ git merge dev        //将dev分支上的内容合并到master分支上,合并 指定分支 到 当前分支
$ git merge --no-ff -m "merge with no-ff" dev  //合并分支时加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,通过git log查看
$ git branch -d dev     //删除dev分支

解决冲突:

  同一文件修改冲突,需要手动解决冲突后再提交。git status可查看冲突,根据标记可修改冲突部分,修改结束后再重新提交。

$ git pull         //拉取远程内容
$ git log --graph        //命令可以看到分支合并图。

 关联本地仓库和远程仓库

$ git branch --set-upstream-to  origin/

创建标签

$ git branch 
$ git checkout dev
$ git tag v1.0      //为当前需要打标签的分支打新标签

$ git tag        //查看所有标签
$ git tag -a 指定标签信息 -m "blablabla..."   //可指定标签信息 

操作标签 

$ git push origin      //可以推送一个本地标签;
$ git push origin --tags        //可以推送全部未推送过的本地标签;
$ git tag -d         //可以删除一个本地标签;
$ git push origin :refs/tags/     //可以删除一个远程标签。

改变Git颜=色

$ git config --global color.ui true

你可能感兴趣的:(git常用命令总结)