来自:兵哥
1 概念
版本控制:是一种软件工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新.
2 原理图
以向版本库中添加文件为例:
3 Git下载
打开浏览器搜索”windows git”
选择”Download”进行下载
4 安装:
我们在本地创建一个目录,叫”learngit”
进入该目录,鼠标右键,选择”Git Bash Here”
输入命令:”git init”,初始化操作(完成后,该目录下会生成一个.git的隐藏目录)
配置用户,例:用户名为nick,输入命令:”git config --global user.nick”
配置邮箱,例:邮箱地址为nick@126.com,输入命令”git config --global user.email nick@126.com”
创建一个新文件 “readme”,输入命令”vim readme”或”touch readme”
输入测试内容”learngit test”,保存退出
在learngit目录下,即可看到已经生成的readme文件
查看当前文件状态.输入命令”git status”,红色表示新文件
备注:通过命令”git add”将文件添加到版本库中:
1.命令”git add --all”:会将当前工作区所有文件都添加到暂存区中;
2.命令”git add .”:会将修改的文件添加到暂存区中;
3.命令”git add 文件名”:精确添加到暂存区中.
输入命令”git add readme”,将文件添加到暂存区中
再次查看文件状态.输入命令”git status”;
输入命令”git commit”,将文件添加到版本库中
可输入文字进行描述,例输入”newfile readme”
输入命令”git status”,如下图所示,即表示一切正常
添加多文件.例:添加file1 file2 file3.输入命令”touch file1 file2 file3”
输入命令”git add .”将文件添加到暂存区
输入命令”git status”,查看文件状态
输入命令”git commit -m “new file 3 files” ”直接添加描述.原命令”git commit -m “描述” ” ,并提交到版本库中
输入命令”git status”,查看文件状态
注:此时,版本库中已有四个文件:readme ,file1 ,file2 , file3
5 为更深入的理解工作区,暂存区,版本库之间的关系,做如下测试:
测试开始
对readme进行修改
添加”test1”,保存退出
输入命令”git status”,查看文件状态
输入命令”git add readme”,将文件添加到暂存区
输入命令”git status”,查看文件状态
注:此时,readme文件只是添加到了暂存区,没有添加到版本库中
再次打开readme文件,再添加一行”test2”
输入命令”git commit -m ‘modify 1 readme’ ”.
注:此时是直接提交到版本库中(未先提交到暂存区)
输入命令”git status”,查看文件状态
输入命令”git add readme”,将文件添加到暂存区
输入命令”git commit -m ‘modify 2 readme’”,将文件提交到版本库中
输入命令”git status”,查看文件状态
测试结束(总结:在工作区,修改完文件,务必要先提交到暂存区,即add,再由暂存区提交到版本库中,即commit)
6 输入命令”git diff filename”,查看工作区文件和版本库文件区别
1.修改readme文件,添加测试信息,如”test3”
输入命令”git diff readme”
7 查询操作日志
输入命令”git log”
输入命令”git log --online”( 版本号只显示前七位)
8 版本回退
命令”git reset --hard HEAD~3”或命令”git reset --hard HEAD^^^”(数字1表示回退到上一个版本,一个^符表示回撤到上一个版本),演示为回退到最开始readme版本
输入命令”ls”,查看
根据版本号再回退.命令”git reset --hard ‘版本号’ ”,例,演示中,modify 2 readme 版本号为ec8fd9e.我们回撤至此版本
输入命令”ls”,查看
9 查看曾做过的版本行为
输入命令”git reflog”进行显示
10 撤销操作:
- 撤销操作之文件未添加到暂存区
例:修改readme,添加测试语句”error”
输入命令”git status”,查看状态
输入命令”git checkout -- readme”,撤销对readme的修改
输入命令”vim readme”.之前的修改已经回退了(之前添加的测试语句error已经没有了)
- 撤销操作之文件已提交到暂存区
修改readme文件,添加测试语句”error”
输入命令”git add readme”,将文件添加到暂存区
输入命令”git status”,查看文件状态
输入命令”git checkout HEAD 文件名”,回撤
输入命令”vim readme”,查看回撤已成功
11 删除文件操作
输入命令”ls”
输入命令”git rm filename”,例,在演示中,删除”file3”
输入命令”ls”
输入命令”git status”
输入命令”git commit -m ‘delete file3’ ”,执行该条命令之后才是真正从版本库中删除了该文件
输入命令”ls”,此时,才是真正删除了一个文件