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":当前已经成功提交的版本
2回滚
这可能是我们初试这种版本控制系统最关心的功能了,很多时候我们的工程“被玩坏了”,希望回到上一次能够成功运行的那个版本的时候就要依赖于这个
最简单的命令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