关于git的介绍和更详细的使用,请前往 Git教程 - 廖雪峰的官方网站 进行阅读,本文只是将常用的命令做个总结,以备不时之需。
1. git配置
1.1 用户名和邮箱
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
以上命令表示所有的仓库都使用相同的用户名和邮箱,输入如下命令可获取全局配置的用户名和邮箱:
$ git config --global user.name
$ git config --global user.email
如果想对某个仓库使用专门的用户名和邮箱,去掉--global
即可,在相应的仓库下输入如下命令:
$ git config user.name "Your Name"
$ git config user.email "email@example.com"
同理,输入如下命令可获取单独配置的用户名和邮箱:
$ git config user.name
$ git config user.email
1.2 SSH Key
本地仓库和远程仓库的传输可以通过SSH协议,所以需要配置SSH Key。
$ cd ~/.ssh
$ ls
config id_rsa id_rsa.pub known_hosts
如果存在.ssh
目录,且该目录下存在id_rsa
和id_rsa.pub
两个文件,说明已创建SSH Key,否则需要输入以下命令来创建:
$ cd ~
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以看到.ssh
目录,且该目录下存在id_rsa
和id_rsa.pub
两个文件,通过cat id_rsa.pub
命令打开id_rsa.pub
文件,并将里面所有的内容复制粘贴到GitHub等仓库托管网站上的SSH Key里的Key文本框中,SSH协议已经配置完成。
2. 仓库管理
git init
:初始化本地仓库
git status
:查看工作区的状态
git diff <file>
:查看file文件的改动
git log
:查看提交历史
git log --pretty=oneline
:以一行的内容来显示提交历史
git reflog
:查看所有的命令历史
git checkout -- <file>
:撤销工作区内file文件的改动
git checkout .
:撤销工作区内所有文件的改动
git add <file>
:添加工作区内修改的file文件到暂存区
git add .
:添加工作区内所有修改的文件到暂存区
git reset HEAD <file>
:将暂存区的file文件撤回至工作区
git reset HEAD .
:将暂存区的所有文件撤回至工作区
git rm <file>
:当删除文件,输入git status
会提示有文件删除,此时输入该命令删除仓库文件
git commit -m 'commit message'
:将暂存区的内容提交到本地仓库,提交信息为commit message
git commit --amend
:追加到最后一次提交
git pull
:从远程仓库拉取所有分支的代码
git pull origin master
:从远程仓库拉取master分支的代码,master可改为正在工作的公共分支,如dev分支
git push origin master
:推送本地仓库到远程仓库的master分支,master可改为正在工作的公共分支,如dev分支
git remote add origin <远程仓库ssh地址>
:本地仓库关联远程仓库
git push -u origin master
:把本地库的所有内容推送到远程库上(第一次推送需要添加-u
,目的是把本地的master
分支和远程的master
分支关联起来)
git clone <远程仓库ssh地址>
:克隆远程库到本地
3. 分支管理
git branch
:查看本地所有分支(前面带*
符号的分支为当前分支)
git branch -a
:查看本地和远程的所有分支
git branch dev
:创建一个dev
分支
git checkout dev
:切换到dev
分支
git checkout -b dev
:创建并切换到dev
分支,相当于执行了上面两个命令
git branch -d dev
:删除dev
分支
git branch -D dev
:强制删除dev
分支
git merge dev
:合并dev
分支到当前分支
git branch -d dev
:删除dev
分支
git log --graph
:查看分支合并图
git stash
:保存当前分支的进度
git stash list
:查看当前分支的所有保存历史
git stash apply
:恢复当前分支最新保存的内容
git stash apply stash@{0}
:恢复当前分支指定保存的内容,配合git stash list
使用,{}
内的数字表示保存列表中的数字
git stash drop
:删除最新保存内容
git stash pop
:恢复最新的同时删除最新保存内容,推荐使用,替代git stash apply
和git stash drop
命令
4.标签管理
git tag v1.0
:打一个“v1.0”的标签
git tag -a v1.0 -m "message"
:打一个带说明的“v1.0”标签
git tag
:查看标签
git tag v0.9 f52c633
:对f52c633
这次commit提交打一个“v0.9”的标签
git show v1.0
:查看“v1.0”标签的详细信息
git tag -d v1.0
:删除“v1.0”标签
git push origin v1.0
:推送“v1.0”标签到远程仓库
git push origin --tags
:推送本地所有的标签到远程仓库
git push origin :refs/tags/v1.0
:删除远程仓库中的“v1.0”标签