git常用命令图解 & 常见错误

你离开我真会死。 提交于 2020-01-12 08:45:53

 

Git 常用命令


基本命令

  • git clone.这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份
git  clone  git://github.com/someone/some_project.git
  • 查看远程仓库:
$ git remote -v
  • 添加远程仓库:
$ git remote add [name] [url]
  • 删除远程仓库:
$ git remote rm [name]
  • 拉取远程仓库:
$git pull [remoteName] [localBranchName]
  • 推送远程仓库:
$ git push [remoteName] [localBranchName]

分支(branch)操作相关命令

  • 查看本地分支:
$ git branch
  • 查看远程分支:
$ git branch -r
  • 创建本地分支:
$ git branch [name]

注意:创建本地分支后不会自动切换到该分支

  • 删除分支
$ git branch -d [name]
  • 强制删除分支
$ git branch -D [name]

注意:-d选项只能删除已经参与合并的分支,对于未有合并的分支是无法删除的,可以使用-D选项;

  • 切换分支
$ git checkout -b feature-web-1.0.7 origin/feature-web-1.0.7
  • 查看本地分支:
$ git branch

版本(tag)操作相关命令

  • 查看版本
$ git tag
  • 创建版本
$ git tag [name]
  • 删除版本
$ git tag -d [name]
  • 查看远程版本
$ git tag -r
  • 创建带注释的tag
$ git tag -a [name] -m 'yourMessage'
  • 删除远程版本:
$ git push origin :refs/tags/[name]

忽略一些文件、文件夹不提交

在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如

target

bin

*.db

Git 命令详解


  • git pull:从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:'git pull origin master’就是将origin这个版本库的代码更新到本地的master主枝,该功能类似于SVN的update

  • git add:是将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步,例如’git add app/model/user.rb’就会增加app/model/user.rb文件到Git的索引中,该功能类似于SVN的add

  • git rm:从当前的工作空间中和索引中删除文件,例如’git rm app/model/user.rb’,该功能类似于SVN的rm、del

  • git commit:提交当前工作空间的修改内容,类似于SVN的commit命令,例如’git commit -m story #3, add user model’,提交的时候必须用-m来输入一条提交信息,该功能类似于SVN的commit

  • git push:将本地commit的代码更新到远程版本库中,例如’git push origin’就会将本地的代码更新到名为orgin的远程版本库中

  • git log:查看历史日志,该功能类似于SVN的log

  • git revert:还原一个版本的修改,必须提供一个具体的Git版本号,例如’git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20’,Git的版本号都是生成的一个哈希值

  • git revert:用下面两幅图解释会比较清楚一些,rebase命令执行后,实际上是将分支点从C移到了G,这样分支也就具有了从C到G的功能

在这里插入图片描述

  • git reset:将当前的工作目录完全回滚到指定的版本号,假设如下图,我们有A-G五次提交的版本,其中C的版本号是bbaf6fb5060b4875b18ff9ff637ce118256d6f20,我们执行了’git reset bbaf6fb5060b4875b18ff9ff637ce118256d6f20’那么结果就只剩下了A-C三个提交的版本

在这里插入图片描述

Git 常见错误


未完待续…

小彩蛋

Git 之所以能够提供方便的本地分支等特性,是与它的文件存储机制有关的。Git存储版本控制信息时使用它自己定义的一套文件系统存储机制,在代码根目录下有一个.git文件夹,会有如下这样的目录结构:

在这里插入图片描述
HEAD文件存放根节点的信息,其实目录结构就表示一个树型结构,Git采用这种树形结构来存储版本信息,那么HEAD就表示根;refs目录存储了你在当前版本控制目录下的各种不同引用(引用指的是你本地和远程所用到的各个树分支的信息),它有heads、remotes、stash、tags四个子目录,分别存储对不同的根、远程版本库、Git栈和标签的四种引用,你可以通过命令’git show-ref’更清晰地查看引用信息;logs目录根据不同的引用存储了日志信息。因此,Git只需要代码根目录下的这一个.git目录就可以记录完整的版本控制信息

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!