Git常用命令

来源:互联网 发布:淘宝打不开怎么办 编辑:程序博客网 时间:2024/04/27 11:15

创建版本库

  • 选择一个合适的位置创建一个空目录:
    $ mkdir learngit
  • 通过git init命令把这个目录变成Git可以管理的仓库 :
$ git init

将文件添加到版本库

  • 现在我们编写一个readme.txt文件,内容如下:
    Git is a version control system.
    Git is free software.

(一定要放到learngit目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。)

  • 用命令git add告诉Git,把文件添加到仓库:
$ git add readme.txt
  • 用命令git commit告诉Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"[master (root-commit) cb926e7] wrote a readme file 1 file changed, 2 insertions(+) create mode 100644 readme.txt

(简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。)

查看文件状态命令

  • git status命令可以让我们时刻掌握仓库当前的状态,查看文件有没有被修改
$ git status
  • git diff命令可以查看对文件做了怎样的修改和上一次进行对比
$ git diff filename

查看日志

  • git log命令显示从最近到最远的提交日志
$ git log
  • 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数:
$ git log --pretty=oneline
  • Git提供了一个命令git reflog用来记录你的每一次命令:
$ git reflog

版本退回

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164…882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

  • 回退到上一个版本,就可以使用git reset命令:
$ git reset --hard HEAD^
  • 知道版本号,回到制定的版本可以使用git reset –hard 版本好:
$ git reset --hard 版本号

版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。

工作区,暂存取

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
这里写图片描述
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

撤销修改

  • git checkout – file可以丢弃工作区的修改:
$ git checkout -- filename
  • 加入不仅对文件进行了修改还执行了git add命令,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:
$ git reset HEAD filename

在执行下面的命令对工作去的修改进行撤销:

$ git checkout -- filename

删除文件

  • 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:
$ rm filename

这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了。
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit。
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本。

$ git checkout -- filename