Git的常用命令 | 青训营笔记

93 阅读4分钟

在进行项目开发时,都会用到版本控制工具,如svn、Git等,随着Git的发展,渐渐的被越来越多的人使用,甚至慢慢在取代svn的地位。下面将从Git仓库的创建、Git常用的基本命令、Git的分支管理、Git查看提交历史、Git 标签、Git 远程仓库来介绍Git的使用。当然下面所涉及的命令都是在Git bash中操作的,所有必须先安装Git,至于怎样安装Git,这里就不介绍了,网上有一大把安装教程。

Git 创建仓库

创建一个git仓库有如下几种方式:

  • git init:初始化一个git仓库
  • git clone:clone一个git仓库 下面对这几种方式进行详细介绍:
  1. git init
      Git使用git init命令来初始化一个Git仓库,执行完git init命令后,会生成一个.git目录,该目录包含了资源数据,且只会在仓库的根目录生成。 如果用当前目录作为Git仓库,则只需要执行如下命令:
git init

执行结果如下:

image.png

执行该命令之后,就可以在当前目录下生成.init文件夹,并且会默认生成一个master分支。

如果要在指定的目录下生成仓库,则指令如下:

git init newDir

newDir为仓库的路径,执行完成之后,会在newDir目录下生成一个.git目录。具体的执行结果如下:

image.png

执行该命令之后,就可以在当前目录下生成newtest文件夹,并在改文件夹下生成.init文件夹。

  1. git clone

使用git clone命令可以从Git仓库拷贝项目,类似于SVN中的 svn checkout,命令格式为:

git clone <url> \[directory]

url为git仓库地址,directory为本地目录,比如,要克隆某个Git 代码仓库,可以用下面的命令:

git clone git://github.com/schacon/grit.git

执行完成之后会在当前目录下生成仓库,如果要指定目录下生成,则可以在后面加一个具体的位置路径,如:

git clone git://github.com/schacon/grit.git newgit

如下为clone一个仓库的执行结果:

image.png

  git clone 时,可以用不同的协议,包括 ssh, git, https 等,其中最常用的是 ssh,因为速度较快,还可以配置公钥免输入密码,各种写法格式如下:

git clone <git@github.com>/schacon/grit.git         --SSH协议
git clone git://github.com/schacon/grit.git          --GIT协议
git clone <https://github.com/schacon/grit.git>      --HTTPS协议

Git 基本指令的使用

下面介绍一下git中常用的几种命令:

  • git config:配置信息
  • git add:添加文件到缓存命令
  • git status:查看文件的状态命令
  • git diff:查看更新的详细信息命令
  • git commit:提交命令
  • git reset HEAD:取消缓存命令
  • git rm:删除命令
  • git mv:移动或重命名命令

Git的分支管理

  几乎每种版本控制系统都支持分支管理,使用分支我们可以从主干中分离出来,然后继续开发,不影响主干。下面介绍一下Git中分支常用的命令:

  • git branch:查看分支命令
  • git branch (branchname):创建分支命令
  • git checkout (branchname):切换分支命令
  • git merge:合并分支命令
  • git branch -d (branchname):删除分支命令

Git查看提交历史

 在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看

下面介绍查看历史记录的几种选项:

  • –oneline :查看历史记录的简洁版本
  • –graph :查看历史中什么时候出现了分支、合并
  • –reverse :逆向显示所有日志
  • –author :查找指定用户的提交日志
  • –since、–before、 --until、–after: 指定帅选日期
  • –no-merges :选项以隐藏合并提交 我们可以用 –oneline 选项来查看历史记录的简洁版本:

我们还可以用 –graph 选项,查看历史中什么时候出现了分支、合并:

 这样我们可以更清楚明了地看到何时工作分叉、又何时归并,也可以用 –reverse 参数来逆向显示所有日志:

 如果只想查找指定用户的提交日志可以使用命令:git log --author , 例如,比方说我们要找 Git 源码中qtqt提交的部分:

image.png

 如果你要指定日期,可以执行几个选项:–since 和 --before,但是你也可以用 --until 和 --after,–no-merges 选项以隐藏合并提交。

例如,如果我要看 Git 项目中八月一日前且在七月二十九日之后的所有提交,我可以执行这个:

image.png

 多数情况下,了解每条提交与那个分支/标签关联是很有用的。–decorate 标记让git log展示所有指向每个提交引用(如分支,标签等),如:

image.png