Git是Linux创始人Linus用C语言写的分布式版本控制系统,与之相对的是集中式版本控制系统如SVN,CVS,VSS,但是都比不上Git好用
初始化Git仓库
git init
可以将把这个目录变成Git可以管理的空仓库,并且会形成.git的隐藏文件夹,可以用ls -alh命令查看到
添加文件或者变更的文件到暂存区
git add filename
将暂存区的文件提交到仓库
git commit -m "description"
查看仓库状态
git status
需要知道一些常用的英语意思,以及一些常出现的错误或者提示:链接
如果有文件被修改了,但是忘记修改了什么地方,可以用git diff filename来查看
版本回退
如果有的时候我们提交了修改但是我们后悔了,想要回退到过去的版本
可以先用 git log查看提交的记录,也可以用git log --pretty=oneline,每次提交都有一个版本号,可以理解成提交的记录ID,这个记录ID使用SHA1计算出来的128位的数字(用16进制表示),也可以用git reflog查看这个ID
然后版本回退方式1:HEAD为一个指针,指向最近一次提交也就是当前版本,HEAD^则表示上一次,HEAD^^上两次,HEAD~100上前一百次
git reset --hard HEAD^
版本回退方式2:通过提交记录ID来回退到相应的版本,这种方式更通用,可以回退也可以到新的
git reset --hard commitID
工作区和暂存区
电脑看到的目录就是工作区,可以在工作区里面添加文件,修改删除文件
版本库就是那个文件夹下面的隐藏文件夹.git,版本库里面有暂存区(stage)和分支
git add就是把工作区的文件添加到暂存区里面,git commit 就是把暂存区里面的提交到某个分支
提交只会把暂存区里面的东西提交到分支上去,而不会管工作区的修改
查看工作区的文件和HEAD指针指向的版本(一般指最新版本)的文件的区别
git diff HEAD -- filename
撤销修改
放弃工作区的修改:git checkout -- filename注意只是放弃工作区的修改,已经在暂存区的但是还没提交的不会被撤销
将暂存区的修改放回到工作区,再放弃工作区的修改:git reset HEAD filename,然后git checkout -- filename
如果已经把修改进行了commit了:那就用版本回退,git reset --hard commitID
删除文件
删除工作区的文件:rm filename
删除版本库(暂存区和分支)的文件:git rm filename
恢复工作区的文件:git checkout -- filename
恢复版本库中的文件:git reset --hard commitID回到以前的版本
除非你的文件没有添加到版本库(git add 和git commit 都算添加到版本库中了)中,然后删除了,那么就没办法恢复了