纲领:
其实git的学习就是四个区之间关系转换的学习,以及各个区本身少量操作的学习。每个操作都有其特定的作用区。学习时注意区分,可事半功倍!
注:尤其要注意,git是以修改为单位的。
一、配置
关键命令: “git config“
git config --global user.name "yourName"git config --global user.email "email@example.com"二、初始化
关键命令:”git init“
//切换到工作目录,而后执行初始化命令git init三、增加文件
关键命令:”git add xx.file“
git add test.txt四、提交文件
关键命令:”git commit -m "增加了xx.file文件"“
git commit -m "增加了test.txt文件"五、状态查看
关键命令:”git status“
git status 六、查看差异
关键命令:”git diff xx.file“
注:比照的是工作区与暂存区
git diff test.txt七、查看版本历史
关键命令:”git log” 、”git log --pretty=oneline“
注:查看的都是repo库的改动
git log#简化输出可用参数--pretty=onelinegit log --pretty=oneline#等号两边没有空格八、回退历史版本
关键命令:”git reset --hard commit_id“
注:此命令其实就是修改repo库head指针的指向位置
参数解释:
git reset有三个主要参数
- –soft ——–>只有repo动
- –mixed —–>repo和stage动(注:默认缺省值)
- –hard ——-> repo、stage、workspace都动
commit_id主要有两种表示方式
- HEAD关键字表示
- hash值前四位表示
git reset --hard HEAD^#--hard 表示三个区域完全回退#HEAD^表示回退的目的地,^号表示HEAD指针的上一个版本。HEAD^也可用commit id的hash值的前几位替代,git会自动索引。git reset --hard 142e九、回流
关键命令:”git reflog“
注:作用与repo库
git reflog #用于回流回退过的情况十、放弃工作区的修改
关键命令:”git checkout -- xx.file“
注:从暂存去签出,覆盖工作区。
git checkout -- test.txt# --不能少十一、删除暂存区的内容(参考第八条)
关键命令:”git reset HEAD xx.file“
参数解释:
- 默认缺省–mixed
- xx.file在单一文件时可缺省,默认整个文件夹同时修改
- HEAD指向当前head指针
注:本质仍旧是修改repo库的head指针,但由于缺省值同时修改了stage,所以效果像是删除了暂存区。
git reset HEAD test.txt#此操作不会影响工作区十二、删除工作区文件
关键命令:”git rm xx.file“
注:在暂存区工作,同git add xx.file,所以还需要一步commit
git rm test.txt#会先执行工作区的文件删除操作 `rm test.txt`git commit -m "rm test.txt"十三、远程仓库
ssh-keygen -t rsa -C "youremail@example.com"创立私钥与公钥- 在github增加公钥
- 创立github仓库 (后续可直接按github的提醒操作就可。)
- 在本地git工作区运行
git remote add origin git@github.com:name/repoName.git关联本地repo与远程repo - 首次推送
git push -u origin master - 后续推送
git push origin master - 注:SSH警告可以忽略,直接yes