Git命令行操作
git help
- Q退出帮助,F向下翻页,B向上翻页
$ git help -a #查询所有Git命令
$ git help -g #Git使用手册
$ git help 命令 #查看详细内容
git config
- 配置会保存在当前用户主目录的.gitconfig下,$ cat ~/.gitconfig查看
$ git config [--global|--system] user.name ... #提交代码时用户名
$ git config [--global|--system] user.email ... #提交代码时用户邮箱
$ git config --unset [--global|--system] user.name #重置用户名(删除)
$ git config --add [--global|--system] user.name #增加用户名
$ git config -l [--global|--local] #查看全局级别|仓库级别的config
$ git config -e [--global|--local] #编辑全局级别|仓库级别的config
新建
- $ ls查看初始化出的目录里的东西
$ mkdir 文件名 #在当前目录创建一个文件夹
$ git init #在当前目录新建一个Git代码库
$ git init 文件名 #新建一个目录,将其初始化为Git代码库
$ git clone #下载一个项目和它的整个代码历史
提交
$ git status #查看当前分支工作区、暂存区的工作状态
$ git commit -m '' #提交暂存区的内容,‘’里是描述信息
$ git commit -am (-a -m) #提交所有修改,等同于上两步
$ git commit ./xx #提交git add ./xx + git commit(建议使用)
$ git commit --amend #增补提交,将暂存区和当前commit合并创建一个新commit去替换当前commit
查看
$ git diff 文件名 #查看此文件不同版本之间的差异
$ git diff --staged/--cached #查看暂存区和上一次提交的不同,git add之前忘diff的后悔药
$ git diff 分支一..分支二 #显示两次提交之间的差异
$ git log 文件 #查看文件的commit记录
$ git log #显示当前分支的版本历史
$ git log --stat #显示commit历史,以及每次commit发生变更的文件
$ git log -S [keyword] #根据关键词搜索提交历史
添加 \ 删除 \ 改名
$ git rm 文件 #删除工作区文件,此次删除放入暂存区
$ git rm --cached 文件 #停止追踪文件,该文件保留在工作区
$ git add 文件 #添加文件到暂存区
$ git add . #添加当前目录所有文件
$ git mv 旧名字 新名字 #修改文件名,放入暂存区
恢复
$ git checkout 文件 #恢复暂存区(上次删除)的文件到工作区
$ git revert #撤销指定的commit(增加新的commit和上次抵消)
$ git reset --hard HEAD #回滚到指定版本,同时清空工作目录的所有改动
$ git reset --soft HEAD #(建议使用)回滚到指定版本,同时保留工作目录和暂存区的内容,并把重置的位置所导致的新的文件差异放进暂存区。
$ git reset --mixed HEAD#(建议使用)回滚到指定版本,同时保留工作目录的内容,并清空暂存区
$ git reset --hard origin/master #将本地master和远程master同步
分支
$ git branch #查看本地分支
$ git branch -r #查看所有远程分支
$ git branch -a #查看所有远程分支和本地分支
$ git branch 分支名 #创建分支
$ git branch -d 分支名 #删除本地分支
$ git branch -m 分支名 #重命名分支
$ git checkout 分支名 #切换分支
$ git checkout -b 分支名 #创建新的分支并切换到该分支
$ git merge 分支 #合并指定分支到当前分支
标签
$ git tag #列出所有tag
$ git tag 标签 #新建一个标签在当前commit
$ git tag 标签 commit #新建一个标签在指定commit
$ git tag -d 标签 #删除本地标签
$ git show 标签 #查看标签信息
$ git push remote 标签 #提交指定标签
$ git push remote --tags #提交所有标签