git的基本命令集很少,主要是以下几个:

git init
git status
git add
git commit
git diff
git log
git checkout head filename
git reset head filename
git rest SHA

看起来并不难掌握。

1三个区域的区分

  在终端中创建一个文件夹:home:$mkdir demo

  进入该文件夹:home:$cd demo

       应用命令git init: home:$git init

  这条命令实际上将当前目录置于工具的管理之下,也就是所谓的“工作目录”,快捷键ctrl + h可以看到实际在目录下创建了一些隐藏文件夹和目录用于管理

  尝试往文件夹中加一个文件并编辑几行(比如,foo.txt)

  输入git add foo.txt,将文件置于 git 的"storage area"

       这个也就是git版本控制的准备区

  输入git commit -m "first file added"

        做了第一次提交。实际就是将我们的文件加入了repository

  我们有了项目的第一个版本:foo.txt

  输入git ls-files,可以知道当前最新版本所包含的文件

  这里出现了三个不同的区域:

  "work area":你的工作目录下的所有文件都处于这个区域

        "storage area": 通过git add添加的,下次提交的话就交这个(如果要提交多个文件的话,要一次写完git add filename1 filename2,多次执行git add会覆盖前次的结果)

       "commited area":当前已经成功提交的版本

回滚

  这可能是我们初试这种版本控制系统最关心的功能了,很多时候我们的工程“被玩坏了”,希望回到上一次能够成功运行的那个版本的时候就要依赖于这个

  最简单的命令git reset HEAD .

  注意最后有一个小数点,它会把所有文件回滚到上次成功提交的状态

  问题是有时候我们希望回到之前某个版本

  先看下有哪些版本:git log

       这行命令会打印出所有已经成功提交的版本

  其中每项的第一行尤为重要

  commit b3cf8a6a6abfd72367f75c36e2da38a5719c4c5d
  命令git reset b3cf8a6a6abfd72367f75c36e2da38a5719c4c5d,这里可以简化成只复制前面7个字符

  使得最近版本变成所需要的版本,当然,这只是改了账本,要做实际的改变还得执行git checkout HEAD .

       最后需要注意的是,小数点代表直接指代所有文件名,可以将小数点换成指定的文件名(一个或多个都行)

 3删除文件

git rm file1.txt
git commit -m "remove file1.txt"

4修改文件名

 

$ git mv application.py newApplication.py
$ git status
# On branch buildServer
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       renamed:    application.py -> newApplication.py