Git使用入门

1、安装Homebrew

1
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2、查看帮助

1
$ brew help

安装完成后,Homebrew 的主程序安装在 /usr/local/bin/brew 中,在目录 /usr/local/Library/Formula/ 下保存了Homebrew 支持的所有软件的安装指引文件。

3、安装git

1
$ brew install git

32M左右,这个过程去抽包烟吧
使用 Homebrew 方式安装,Git 被安装在 /usr/local/Cellar/git// 中,可执行程序自动在 /usr/local/bin 目录下创建符号连接,可以直接在终端程序中访问。

安装完成后,还需要最后一步设置,在命令行输入:

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

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

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

4、创建版本库

  • 首先,选择一个合适的地方,创建一个空目录:
    1
    2
    3
    4
    $ cd study/Github/GitLearn 
    $ mkdir learngit
    $ cd learngit
    $ pwd

pwd命令用于显示当前目录

  • 第二步,通过git init命令把这个目录变成Git可以管理的仓库:
1
$ git init

如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用$ ls -ah 命令就可以看见。

5、把文件添加到版本库

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

  • 第一步,用命令git add告诉Git,把文件添加到仓库:
1
$ git add readme.txt
  • 第二步,用命令git commit告诉Git,把文件提交到仓库:
1
$ git commit -m "wrote a readme file"

简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。git commit命令执行成功后会告诉你,1个文件被改动(我们新添加的readme.txt文件),插入了两行内容(readme.txt有两行内容)。

6、查看状态,提交更改

  • 时刻掌握仓库当前的状态
1
$ git status
  • 查看difference
1
$ git diff readme.txt
  • 提交修改和提交新文件是一样的两步,第一步是git add,第二步是git commit
1
2
$ git add readme.txt
$ git commit -m "add distributed"

7、版本回退

  • git log命令查看从最近到最远的提交日志
1
$ git log

简洁模式

1
$ git log --pretty=oneline
  • 回退到上一个版本
1
$ git reset --hard HEAD^
  • 指定回到某个版本
1
$ git reset --hard 14ccc3f

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

  • git reflog用来记录你的每一次命令:
1
$ git reflog
  • git diff HEAD 命令可以查看工作区和版本库里面最新版本的区别
1
$ git diff HEAD -- readme.txt

8、撤销修改

  • git checkout — file可以丢弃工作区的修改
1
$ git checkout -- readme.txt

命令git checkout — readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。

  • git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:
1
$ git reset HEAD readme.txt

9、删除文件

1
2
$ git rm test.txt
$ git commit -m "remove test.txt"

删错了?版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

1
$ git checkout -- test.txt