git学习系列是基于廖神的git教程(http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000)简化而来,计划分三部分完成:
- git版本管理基本概念、基本命令的使用
- 远程仓库、分支管理、标签管理
- 自定义
centos系统Git的安装
yum -y install git
创建版本库
git init 初始化一个Git仓库
ls -ah/-al 查看隐藏的.git目录
版本管理
git add filename 可反复多次添加多个文件到
git commit -m “本次提交内容的comment”
git status 查看工作区被修改了什么
git diff filename 具体查看修改内容
版本回退:
git log 显示从最近到最远的提交日志
git log --pretty=online 输出间接日志提交信息
3628164fb26d48395383f8f31179f24e0882e1e0 append GPL
#3628164fb26d48395383f8f31179f24e0882e1e0 commit id
git reset --hard HEAD^/HEAD^^/HEAD~n HEAD为当前commit_id
git reset --hard commit_id 回退到指定的版本,commit_id没有必要写全程,可识别即可
git reflog 记录每一次命令,可以查看git log查不到的历史操作记录
工作区和暂存区:
工作区即存放文件的目录
版本库即.git目录
stage/index 暂存区,存放add但未commit的中间信息
master 是git默认帮忙创建的一个分支
HEAD 指向master当前的commit_id的指针
git add ->stage ->git commit ->master当前分支
git diff HEAD -- filename 查看工作区和版本库文件内容的区别
由于存在暂存区这个东东,可以实现多次add,一次提交
撤销修改:
git checkout -- filename 丢弃工作区的修改
1.修改后经过一次add,再次修改文件,执行checkout,则工作区回到暂存区的状态
2.修改工作区文件后未add到暂存区,执行命令,则工作区回到跟上次提交的分支内容一致
-- 十分重要,去掉--,执行git checkout xxx,则是切换分支的效果
git reset HEAD filename 可以吧暂存区的修改撤销掉
三个场景:
乱改了工作区某个文件内容 git checkout -- file
乱改了工作区文件,并追加到暂存区 git reset HEAD file ->git checkout -- file
乱改了工作区文件,并commit到分支 git reset --hard HEAD^/HEAD~n
文件删除,如果在工作区删除了某个文件:
1.确实要删除 git rm file
2.误删恢复 git checkout -- file 相当于从分支总回退