前言:Git是目前世界上最先进的分布式版本控制系统,对的,最先进!
1. 版本库,又名仓库,repository
可理解成一个目录,目录里的所有文件都可被Git管理,Git可以跟踪每个文件的修改、删除等。版本库里最重要的是称为stage(也叫index)的暂存区,然后是Git自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
注意:工作区指电脑上看到的目录,和版本库是不同的概念,工作区的.git文件,是Git的版本库。
2. git init
初始化,把当前目录变成git可以管理的版本库,会生成一个.git文件
3. git add filename
把文件添加到仓库,此时是将修改添加到暂存区
4. git commit -m "本次提交的注释"
把文件提交到仓库,此时是将暂存区的所有内容提交到当前分支
5. git status
查看当前仓库的状态
6. git diff filename
比较文件修改前后的差异
7. git log
显示从最近到最远的提交日志
8. git log --pretty=oneline
显示提交日志,简洁版,不附带过多信息
9. git reset
版本回退,将当前版本回退到历史中的某个版本
用法一:git reset --hard HEAD^ 回退到上个版本,HEAD表示当前版本
用法二:git reset --hard HEAD^^ 回退到上上个版本,如果回退到之前100个版本,可以写成HEAD~100
用法三:git reset --hard commit_id 回退到commit_id对应的版本号(commit_id表示版本号)
10. git reflog
查看历史命令,可从显示的命令中找到版本号
11. git diff HEAD -- filename
查看filename文件在工作区和版本库里最新版本的区别
12. git checkout -- filename
撤销filename文件在工作区的修改
13. git rm filename
从版本库删除filename文件
14. ssh-keygen -t rsa -C "youremail@example.com"
创建SSH Key,生成id_rsa私钥和id_rsa.pub公钥
15. git remote add origin 仓库地址
将本地仓库和远程仓库关联起来
16. git push -u origin master
把master分支推送到远程,origin是远程库的名字,这个是Git默认约定的叫法。
注意:第一次加上了-u参数,Git会把本地的master分支内容推送到远程新的master分支,还会把本地master和远程master关联起来,后面就可以去掉-u参数了。
17. git clone 仓库地址
将远程仓库克隆到本地库
18. git checkout -b 分支名称
创建分支,并且切换到该分支
相当于两条命令: git branch 分支名称 git checkout 分支名称
19. git switch -c dev
创建并且切换到新的dev分支
20. git branch
查看分支,列出左右分支,并且在当前分支前面加上*号
21. git merge dev
合并分支,将dev分支合并到当前分支
22. git merge --no-ff -m "merge注释" dev
合并分支时,加上--no-ff参数表示用普通模式合并,合并后的历史有分支,可以通过git log来查看。如果用fast forward合并将看不出曾做过合并。
23. git branch -d dev
删除dev分支, -d改为-D的话,表示强行删除
24. git pull
拉取远程内容
25. git log --graph
查看分支合并图
26. git stash
贮藏当前工作区
27. git stash pop
恢复贮藏的工作区,并把stash内容删除掉
28. git rebase
将分叉的分支重新合并
29. git tag tagName
给当前分支打上标签,默认打在该分支最新提交的commit上
30. git tag
查看所有标签,结果按照字母排序
31. git tag -a tagName -m "标签注释"
指定标签信息
32. git tag -d tagName
删除一个本地标签
33. git push origin tagName
推送指定的标签到远程
34. git push origin :refs/tags/tagName
删除一个远程标签