git简介
git是分布式版本控制系统。
特点:
1.版本控制:解决了多人同时开发代码的问题,解决了找回历史代码的问题。
2.分布式:每个人都可以从服务器仓库中拉取一份仓库,然后修改后推送到中央服务器上,
这个中央服务器可以自己搭建,也可以使用github充当。
git与其他cvs,svn等集中式代码管理的区别:
分布式的特点是即使中央服务器挂掉了,自己的电脑上的完整代码也可以使用;集中式的特点是,一旦中央服务器挂掉了,
自己电脑上的代码就不可以用了。
git的安装
windows
linux
apt-get install git #ubuntu
yum -y install git #centos
使用git管理一个目录:
cd test #进入要进行git管理的目录
git init #初始化这个要管理的目录。
ls -al #生成了一个.git隐藏文件
git初始配置
git config --global user.name "jiangwenfan" #设置使用git时的姓名
git config --global user.email "zhan2103208467@163" #设置邮箱地址
#会生成在/root/.gitconfig或.config文件中;所以更改信息也可以直接更改这个文件。
#这里设置的姓名和邮箱地址会用在 Git 的提交日志中。
#由于在 GitHub 上公开仓库时,这里的姓名和邮箱地址也会随着提交日志一同被公开,所以请不要使用不
#便公开的隐私信息。
git config --global color.ui auto #提交命令输出的可读性
#会在/root/.gitconfig中增加一行配置内容。
1.版本的创建:
echo "this is first line" > code.txt #创建了一个文件
#给这个文件创建一个版本。其中"版本1"这个字符串只是一个说明信息
git add code.txt
git commit -m "版本1"
git log #查看创建的版本信息
echo "this is second line " >> code.txt #给这个文件添加一行
#给整个文件创建一个版本2
git add code.txt
git commit -m "版本2"
git log #查看版本的日志信息
2.版本的回退
git log #查看版本信息
#回退到上(前)一个或上(前)几个版本
git reset --hard HEAD^ #回退到上一个版本
git reset --hard HEAD^^ #回到上两个版本
#回退到后一个版本
git reset --hard 版本号 #回到下一个版本。
git log #查看版本号
git relog #查看版本号
每次创建一个版本,指针都会指向最新的的版本,这个指针叫做HEAD。
HEAD的前一个版本使用HEAD^表示。
HEAD的前两个版本使用HEAD^^表示。
…以此类推。
HEAD~1 #前一个版本
HEAD~100 #前100个版本
git log 与git reflog查看版本号:
深入了解git
工作区就是当前可以修改文件的目录,版本库就是当前工作区下的隐藏文件.git。
1.撤销工作区的修改
git checkout -- code.txt #取消工作区被修改的文件。
在工作区给code.txt和code2.txt文件同时新增加了一行内容,
撤销code.txt文件内容后,查看code.txt文件发现确实已经消失了新怎加的一行内容,没有被撤销的修改code2.txt文件内容还在。
2.撤销对暂存区的修改
git status #发现已经提交到暂存区了
git reset HEAD code2.txt #撤销对code2.txt文件暂存区的修改
git status #发现已经重新放回工作区了
git checkout -- code2.txt #撤销对code2.txt文件工作区的修改。
cat code.txt
撤销暂存区的修改
撤销工作区的修改
3.对比文件的不同
工作区和版本库中的对比
版本库中的对比
一些注意事项
1.git的版本是针对于当前git工作区环境而言的,并不是具体的某个文件。
从下面这个图中可以看出,版本3比版本1多了一个code2.txt文件,并且code.txt文件中的内容也变多了
2.可以多次将工作区域的内容提交到暂存区,然后一次性commit为一个版本。
3.git只会把提交到暂存区的修改创建一个版本。
第一次修改文件内容,并将修改过后的文件内容添加到暂存区中。
第二次修改问价内容,修改完之后没有添加到暂存区:
创建一个新的版本,发现
2. 常用命令
git add code.txt code2.txt
git add .
git status -s