git 常用命令

前言

  本文使用于熟练运用git操作人员快速查找git相关命令。
  新手请看:
    Git教程 - 廖雪峰的官方网站  
    Git-官方网站

基础

初始化一个git仓库

$ git init

把远程仓库克隆到本地 

$ git clone [repositoryUrl]

$ git clone repositoryUrl [localName]

repositoryUrl: 远程仓库的地址
localName: 本地仓库名字

现在你本地已经有了一个远程仓库名字一样的文件夹,因为是在远程仓库直接克隆下来的,本身已经是一个Git仓库,不需要重新使用git init 初始化,就可以进行提交或者拉取操作;如果本地仓库名字不想和远程仓库一样,可以使用 $ git clone repositoryUrl localName

查看本地文件是否被修改

$ git status

 这个命令会把未提交前你本地变动(修改、新增、删除)的文件全部罗列出来

撤销暂存区的文件

$ git reset [file-name]

把本地修改提交到远程仓库

$ git add .
$ git commit -m ' First commit'

$ git pull remote branch
$ git push -u remote branch

git add . : 把本地修改提交到暂存区,‘ . ’表示把所有修改提交,也可以为某一个文件名
git commit -m 'First commit' :把暂存区提交到本地仓库,并添加描述
git pull remote branch :拉取远程仓库内容,remote:远程仓库名称,branch:分支名
git push -u remote branch:推送到远程仓库,-u:表示绑定一个远程库, 下次推送时可直接使用 git push

注意:以上几条命令顺序不可颠倒!

查看提交历史

$ git log

  默认不加参数的话,git log会按照提交时间罗列出所有的更新
  参数: 
  -p:显示每次提交内容的差异,后面可以跟 -2 表示仅显示最近两次的提交
  --stat: -p 差不多,显示信息更简略
  --pretty=[param]:有多个参数,online、short、full、fuller、format,可以自己动手实践看一下效果。format可以定制要显示的格式,详情 ==> format常用选项
  --graph:添加ASCII字符串形象的展示你的分支,可与其他参数结合使用
  git log 常用选项

修改上次提交信息

$ git commit --amend

  上次提交后,提交信息有错误,输入命令,可编辑上次提交信息;也可用这条命令直接提交,不会添加提交记录,会覆盖(合并)上一次提交。

查看远程仓库

$ git remote -v
$ git remote show [remote-name]

  第一个命令会列出你指定的每一个服务器的简写
  -v:把远程仓库url也显示出来
  第二个命令会显示远程仓库详细信息

添加远程仓库

$ git remote add

  shortname:远程库的简称
  url:远程库地址

从远程仓库中抓取与拉取

$ git fetch [remote-name]
$ git pull [remote-name]

  git fetch 和 git pull 的区别

远程仓库的移除与重命名

$ git remote rm [remote-name]
$ git remote rename [old-name] [new-name]

  这个命令会把未提交前你本地变动(修改、新增、删除)的文件全部罗列出来

分支

创建分支

$ git branch [branch-name]

查看分支所指向的对象

$ git log --oneline --decorate

切换分支

$ git checkout [branch-name]
$ git checkout -b [branch-name]

  第二个命令会自动创建一个分支并切换到这个分支

查看项目分叉历史

$ git log --oneline --decorate --graph --all

合并分支

$ git merge [branch-name]

  把 [branch-name] 分支上的内容合并至当前分支

删除分支

$ git branch -d [branch-name]

查看分支列表

$ git branch -v

  这个命令会把全部分支显示出来,分支前带 * 号,代表当前分支
  -v:这个参数会把每个的最后一次提交也显示

查看已经合并到当前分支的分支

$ git branch --merged

  此时,你可以运行 $ git branch -d [branch-name] 把已经合并到当前分支的分支删除,因为你已经把它们的工作整合到了当前分支,所以不会丢失任何东西。

查看还没有合并到当前分支的分支

$ git branch --no-merged

列出标签

$ git tag
$ git tag -l 'v1.8.5*'

  第一个命令会把标签全部罗列
  第二个命令会把含有1.8.5的系列标签全部罗列出来

标签

创建标签

$ git tag [tag-name]
$ git tag -a [tag-name] -m 'description'
$ git show [tag-name]

  git show:查看标签信息和对应的提交信息
  第一个命令为轻量标签,git show 时不会看到额外的标签信息。 命令只会显示出提交信息
  第二个命令为附注标签,git show 输出显示了打标签者的信息、打标签的日期时间、附注信息,然后显示具体的提交信息

后期打标签

$ git tag -a [tag-name] [commit-id]

  这个命令会通过提交id对之前的提交打标签

推送标签

$ git push [remote-name] [tag-name]
$ git push [remote-name] --tags

  默认情况下,git push 命令并不会传送标签到远程仓库服务器上。 在创建完标签后你必须显式地推送标签到共享服务器上。
  第一个命令推送单个标签
  第二个命令推送多个标签

检出标签

$ git checkout -b [branch-name] [tag-name]

  在 Git 中你并不能真的检出一个标签,因为它们并不能像分支一样来回移动。这个命令会根据一个标签创建一个新分支

拓展

Git别名

$ git config --global alias.co checkout 

  这时,运行 git co 相当于 git checkout

记住用户名和密码(https)

$ git config --global credential.helper store

  --global:全局配置,如果只是需要在当前项目中使用,则不加这个参数
  store:不会失效;cache:15分钟后过期;$ git config credential.helper 'cache -timeout=3600':一小时后过期

你可能感兴趣的:(工具)