git常用命令

Git常用命令

安装Git

在Linux上安装Git

  在Ubuntu Linux中,使用 sudo apt-get install git 完成安装。
  如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装就好了。   

在Mac OS X上安装Git

  一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。
  第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

在Windows上安装Git

  从Git官网直接下载 https://git-scm.com/downloads 然后按默认选项安装即可。
  安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
  安装完成后,还需要最后一步设置,在命令行输入:

1
2
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

  注意config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

创建版本库、提交文件

  选择一个合适的地方,创建一个空目录,然后创建文本文件,可以使用Notepad++编辑文本文件,默认编码设置为UTF-8 without BOM。

1
2
3
4
5
6
7
$ mkdir learngit
$ cd learngit
$ pwd //查看当前工作目录
$ git init //把这个目录变成Git可以管理的仓库,此时以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,最好不要修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。如果没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。
$ git add readme.txt //把文件(readme.txt)添加到仓库
$ git commit -m "wrote a readme file" //把文件提交到仓库,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样就能从历史记录里方便地找到改动记录。
//为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件。

查看仓库状态、文件修改、版本回退和前进

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ git status //可以让我们时刻掌握仓库当前的状态
$ git diff readme.txt //查看difference,知道了对readme.txt作了什么修改
$ git log //显示从最近到最远的提交日志
$ git log --pretty=oneline //简化版的查看提交日志
$ git reset --hard HEAD^ //回退到上一个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。回退到前面版本,如果还想再回到最新版本,可以用 git reset --hard 版本号(不用写全)
$ cat readme.txt //查看文件内容
$ git reflog //记录每一次命令(可以查看版本号)
$ git checkout -- readme.txt //撤销修改
$ git reset HEAD readme.txt //把暂存区的修改回退到工作区
$ rm test.txt //删除了工作区的文件
$ git rm test.txt //从版本库中删除该文件,还需要git commit -m "remove test.txt,才能彻底删除文件。
$ git checkout -- test.txt //误删后因为版本库里还有,所以可以很轻松地把误删的文件恢复到最新版本。
//git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
//注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!

  场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
  场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD,就回到了场景1,第二步按场景1操作。
  场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

远程仓库