一、使用
* git config --system [key] [value]:安装目录/etc/gitconfig
* git config --global [key] [value]:当前用户/.gitconfig,优先级高于--system
* git config [key] [value]:工作区/.git/config,优先级高于--global
* git config --list:配置列表
* 工作区:工作目录
* 暂存区:工作目录/.git/index
* 版本库:工作目录/.git
* tracked:rm操作->untracked
- unmodified:edit操作->modified
- modified:add操作->staged
- staged:commit操作->unmodified
* untracked:add操作->tracked
* git init:初始化仓库
* git clone [url]:克隆仓库
* git add .:将工作区的所有文件添加到暂存区(工作区->暂存区)
* git add [file]:将工作区的某个文件添加到暂存区(工作区->暂存区)
* git commit -m "[message]":将暂存区文件提交到版本库(工作区、暂存区->版本库)
* git commit -am "[message]":将工作区文件提交到版本库(工作区、暂存区->版本库)
* git status:查看暂存区状态(查暂存区)
* git status -s:查看暂存区状态摘要(查暂存区)
* git reset HEAD:重置暂存区(删暂存区)
* git reset HEAD [file]:重置暂存区的某个文件(删暂存区)
* git diff:对比工作区与暂存区文件的更改(工作区、暂存区、版本库对比)
* git diff --stat:对比工作区与暂存区文件的更改摘要(工作区、暂存区、版本库对比)
* git diff --cached:对比暂存区与版本库文件的更改(工作区、暂存区、版本库对比)
* git diff HEAD:对比工作区与版本库文件的更改(工作区、暂存区、版本库对比)
* git rm -r -f --cached [file]:-r递归删除;-f强制删除;--cached仅从跟踪清单中删除
* git mv [file]:移动或重命名文件
* git branch:查看分支
* git branch [branchname]:新建分支
* git branch -d [branchname]:删除分支
* git checkout [branchname]:切换分支
* git checkout -b [branchname]:新建分支并切换分支
* git merge [branchname]:合并分支
* 合并冲突:主支修改并提交,分支修改并提交,主支合并分支出现冲突,手动解决冲突并再次提交
* git log:查看历史提交记录
* git log --oneline:查看简洁版历史提交记录
* git log --oneline --decorate --graph:查看简洁版带标签拓补图版的历史提交记录
* git log --reverse --oneline:查看逆序的简洁版历史提交记录
* git log --author=[user.name] --oneline -[number]:
查看指定作者的简洁版最新的指定条数的历史提交记录
* git log --oneline --before=[3.weeks.ago] --after=[2010-04-18] --no-merges:
查看简洁版3周前的2010年4月18日后的隐藏合并提交的历史提交记录
* git tag:查看所有标签
* git tag -a [tagname] -m "[message]" [id]:指定提交id的指定标签信息命令
* git tag -s [tagname] -m "[message]" [id]:指定提交id的PGP签名标签命令
* git remote add [shortname] [url]:添加仓库
* git remote -v:查看远程仓库的别名与地址
* git remote rm [shortname]:删除指定别名的远程仓库
* git push [shortname] [branch]:推送到指定别名指定分支的远程仓库
* git fetch [shortname]:提取指定别名的远程仓库
* git merge [shortname]/[branch]:合并指定别名的远程仓库的指定分支
二、补充知识点
* 删除本地tag:git tag -d <tagName>
* 删除远程tag:git push origin :refs/tags/<tagName>
* 强制推送(本地reset current branch to here。
注意要在自己的开发分支操作,否则会重置其他人的提交记录):git push -f
* git config --global core.autocrlf false:crlf与lf在提交和检出阶段不做转换