git学习笔记

Git是目前世界上最先进的分布式版本控制系统
git只能管理文本文件(txt,网页,代码等,word是二进制不行)且每次记录的是改动而不是整个文件。

在Mac OS X上安装Git:

brew install git

安装完成后,还需要设置用户名和邮箱,在命令行输入:

git config --global user.name "your_name"
git config --global user.email "[email protected]"

现在就可以开始愉快的学习了:
用cd切换到我们学习git的文件夹learngit

git init  #把当前文件夹变成git可以管理的仓库,成功后会有一个隐藏的.git文件夹

例子:我们要管理readme.txt,先把这个文件放在learngit文件夹下(子目录也行)

git add readme.txt  #添加这个文件到仓库,可以多次,一次多个文件添加
git commit -m "此次提交的说明信息“ #提交所有添加到仓库的文件,每次提交都会有此次提交的版本号记录

再来看几个命令:

git status  #可以让我们时刻掌握仓库当前的状态,比如有文件被修改过
git diff readme.txt  #可以查看readme.txt这个文件每次都被修改了哪些内容
git log  #可以查看提交日志(同时可以看到每次提交的版本号),为方便阅读可以用 git log --pretty=oneline
git reset --hard HEAD^ #回退到历史版本,HEAD表示当前版本,HEAD^上个版本,HEAD^^上上个版本,HEAD~100上100个版本。用hard参数会删除当前的版本!
git reset --hard shuzi #回到指定的版本。shuzi是16进制的commit id,可以在git log中查看
git reflog  #查看命令历史,可以帮助我们找到commit id来回到未来。

reset的三种参数

理解工作区,版本库,暂存区

我们创建的learngit文件夹叫工作区
learngit中隐藏的.git文件夹叫版本库
版本库中有很多东西:称为stage的暂存区,自动为我们创建的master分支,以及指向master的一个指针叫HEAD


git学习笔记_第1张图片
理解git结构

git add 把文件从工作区中添加到暂存区
git commit 把暂存区中所有的文件提交到当前分支

撤销,删除文件

git checkout -- readme.txt  #git checkout还可以用于切换分枝

git checkout --file可以丢弃工作区修改,此时分两种情况:
1.readme.txt修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态
2.readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态

如果写错后已经添加到暂存区,还没有commit:
git reset HEAD file (reset命令也可以回退)可以把暂存区的修改撤销掉(unstage),重新放回工作区,再用git checkout -- readme.txt删掉修改

假如我们删掉工作区一个test.txt文件,此时工作区和版本库不一致了,git status会发现有文件被删除了
1.你确实要删除这个文件

git rm test.txt  #把版本库中此文件也删除

2.删错了,可以从版本库中恢复

git checkout -- test.txt

你可能感兴趣的:(git学习笔记)