初始化仓库
git init <repository name>
提交文件
添加文件
git add <file1 name>
提交文件
git commit <file1 name> -m '注释内容'
注意:添加一次只能添加一个文件,但是提交可以一次提交全部被add的文件,只要不写file name即可。
查看文件状态
git status <file name>
查看文件修改内容
git diff <file name>
日志查看
查看日志,显示从最近到最远的提交日志
git log
git log --pretty=oneline
查看几行日志
git log --pretty=oneline -p -lineNum
查看每一次的命令
git reflog
撤销修改
版本撤销
git reset --hard HEAD^
git reset --hard <commit_id>
注意:HEAD指向的版本就是当前版本,一个“^”表示上一个版本。
丢弃工作区的修改
git checkout -- file
注意:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
删除文件
前提:file已经被commit到版本库中
删除工作区文件
rm <file name>
删除版本库中的该文件
git rm <file name>
git commit -m 'remove the file'
如果误删撤销
git checkout -- file
SSH设置
创建ssh
ssh-keygen -t rsa -C "youremail@example.com"
注意:如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
远程库
关联远程库
git remote add origin git@github.com:server-name:path/repo-name.git
推送本地库内容到远程库
git push -u origin master
注意:由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数。
克隆远程库
git clone git@github.com:server-name:path/repo-name.git
git clone https://xxx.git
提示:使用https
除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh
协议而只能用https
。
分支相关命令
创建分支
git branch <branch name>
查看本地分支
git branch
查看所有分支
git branch -a
查看远程分支
git branch -r
切换分支
git checkout <branch name>
创建并切换分支
git checkout -b <branch name>
删除分支
git branch -d <branch name>
标签相关命令
创建标签
git tag <tag name>
查看标签
git tag
给已经提交的打标签
git tag <tag name> <commit id>
注意:标签不是按时间顺序列出,而是按字母排序的。
查看标签信息
git show <tag name>
创建带有说明的标签
git tag -a <tag name> -m "balabala..."
PGP签名标签
git tag -s <tag name> -m "balabala..."
删除本地标签
git tag -d <tag name>
删除远程标签(先删除本地标签再删除远程标签)
git tag -d <tag name>
git push origin :refs/tags/<tag name>
推送某个标签到远程
git push origin <tag name>
推送全部标签到远程
git push origin --tags