分类 | Git 命令 | 作用 |
---|---|---|
配置 | git config –global user.name “John Doe” | 配置 Git 提交姓名 |
配置 | git config –global user.email “[email protected]” | 配置 Git 提交邮箱 |
创建 | git init | 初始化当前目录为 Git 目录 |
创建 | git add ./[file_name] | 添加跟踪(所有)当前操作文件到 Git 管理暂存 |
创建 | git clone [URL] | 从 URL 仓库clone文件并建立 Git 管理 |
提交 | git commit -m ‘提交记录’ | 提交当前暂存区的文件并记录提交 |
提交 | git status | 查看文件 Git 状态 |
提交 | git status -s/–short | 查看文件 Git 状态(紧凑格式) |
提交 | .gitignore文件 | 文件中记录当前目录下不参与 git 跟踪的文件 |
比较 | git diff | 比较工作目录中当前文件和暂存区域快照之间的差异 |
比较 | git diff –[cached/staged] | 查看已暂存与当前已提交的文件差异 |
删除 | git rm [file_name] | 从当前 Git 仓库中删除某文件 |
删除 | git rm -f [file_name] | 从当前 Git 仓库中删除某文件(包括已修改但未暂存的文件) |
删除 | git rm –cached [file_name] | 从当前 Git 仓库中删除某文件不再跟踪(但保留在当前工作目录中) |
移动 | git mv [file_old_name] [file_new_name] | 重命名/移动文件 |
日志 | git log | 查看提交日志 |
日志 | git log -p -[N] | 查看最近 [N] 次的提交日志和差异 |
日志 | git log –stat | 查看每次提交的简略的统计信息 |
日志 | git log –graph | 查看每次提交的图形化的统计信息 |
日志 | git log –pretty=[oneline/short/full/fuller] | 指定使用不同于默认格式的方式展示提交历史 |
日志 | git log –pretty=format:”%h – %an, %ar : %s” | 定制要显示的记录格式[^定制格式说明] |
撤销 | git commit –amend | 撤销上次提交,并重新提交(用当前状态替换上次提交) |
撤销 | git reset HEAD [file] | 取消某文件暂存(撤销某文件的 git add 操作) |
撤销 | git checkout – [file] | 撤销对工作目录下未提交的文件的修改 |
远程 | git remote [-v] | 查看远端仓库名[及其 URL] |
远程 | git remote add [shortname] [url] | 添加远端仓库并命名 |
远程 | git fetch [remote-name] | 拉取远端所有内容以及更新至本地引用 |
远程 | git push [remote-name] [branch-name] | 推送本地[branch-name]分支至远端[remote-name] |
远程 | git remote show [remote-name] | 查看远端仓库详细状态 |
远程 | git remote rename [remote-old-name] [remote-new-name] | 重命名远端仓库 |
远程 | git remote rm [remote-name] | 移除远端仓库 |
标签 | git tag | 列出所有标签 |
标签 | git tag -a [tag-name] -m “[annotation]” | 创建附注标签 |
标签 | git show [tag-name] | 列出指定标签详细信息 |
标签 | git tag [tag-name] | 创建轻量标签 |
标签 | git tag -a [tag-name] [commit-sha-1] | 对某次提交(以 sha-1 码形式)补充标签 |
标签 | git push [branch-name] [tag-name]/[–tags] | 将本地的[某个/全部]标签全部推送至远端 |
标签 | git checkout -b [branchname] [tagname] | 在特定标签上创建一个新的分支 |
别名 | git config –global alias.[alias] [command] | 创建一个[command]的[alias]别名(git config --global alias.unstage 'reset HEAD --' ) |
分支 | git branch [branch-name] | 创建分支(但是不会切换至此分支) |
分支 | git checkout [-b] [branch-name] | [创建并]检出此分支为当前分支 |
分支 | git merge [branch-name] | 在当前分支处合并某分支 |
分支 | git branch -[d/D] [branch-name] | [删除/强制删除]某分支 |
分支 | git branch [-v/-vv] | 查看所有分支[以及它们最后一次提交/以及与本地缓存下的远端分支的联系] |
分支 | git branch –merged/–no-merged | 查看[已经/尚未]合并到当前分支的分支 |
分支 | git checkout -b [branch] [remotename]/[branch] | 从远端检出并创建本地分支同时默认跟踪远端此分支 |
分支 | git checkout –track [remotename]/[branch] | 从远端检出并创建本地同名分支同时默认跟踪远端此分支 |
分支 | git branch [-u/–set-upstream-to] [remotename]/[branch] | 设置或更新当前分支跟踪远端分支 |
分支 | git fetch –all | 拉取远端分支所有更新至本地缓存 |
分支 | git pull/[git fetch THEN git merge] | 拉取远端分支并合并 |
分支 | git push origin –delete [branch-name] | 删除远端分支 |
变基 | git rebase[目前使用不多,需要深入理解] | 不要对在你的仓库外有副本的分支执行变基,详情参见此处 |
储藏 | git stash/git stash save | 储藏当前未提交的修改并回复工作目录至提交状态 |
储藏 | git stash list | 查看当前储藏栈 |
储藏 | git stash apply [stash@{2}] | 应用[最近的一次/指定的某次]储藏 |
储藏 | git stash drop [stash@{0}] | 在储藏栈中删除[指定的某次]储藏 |
储藏 | git stash pop | 在储藏栈中应用最近的一次储藏并删除 |
储藏 | git stash –keep-index | c储藏工作目录中未暂存的东西(已经通过 add 暂存的不储藏) |
储藏 | git stash -u | 储藏当前未提交的修改(包括未加入 Git 跟踪的文件) |
储藏 | git stash branch [branch-name] | 依据上次储藏的内容创建一个新的分支并应用上次的储藏(将上次储藏前的工作目录应用于一个新的分支上处理) |
清理 | git clean | 清理当前目录中所有未被跟踪的文件且不能恢复(不包括 .gitignore 文件中的列表) |
清理 | git stash –all | 清理当前目录中所有未被跟踪的文件并暂存起来 |
清理 | git clean -f -d | 移除工作目录中所有未追踪的文件以及空的子目录 |
清理 | git clean -d -n | 使用-n而不是-d表示做一次演习然后告诉你将要移除什么 |
清理 | git clean -f -d -x | 移除工作目录中所有未追踪的文件以及空的子目录(包括 .gitignore 文件中的列表) |
清理 | git clean -n -d -x | 演习移除工作目录中所有未追踪的文件以及空的子目录(包括 .gitignore 文件中的列表) |
重置 | git reset[需要深入理解] | 详情参见此处** |
合并 | git merge –abort | 在 merge 操作后需要处理冲突时使用此命令撤销此合并 |
合并 | git reset –hard HEAD | 无论当前什么状态,直接恢复至本分支上次提交状态(这会将清除工作目录中的所有内容) |
合并 | git reset –hard HEAD~ | 恢复至本分支上次提交的父状态(最近一次提交的父节点提交) |
合并 | git reset/revert | 更多合并撤销详情见此处 |
- 文件 .gitignore 的格式规范如下:
- 所有空行或者以 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配。
- 匹配模式可以以(/)开头防止递归。
- 匹配模式可以以(/)结尾指定目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
[^定制格式说明]: 格式详情见git log –pretty=format 常用的选项
來源:Git 常用命令总结