[Git] 常用指令總匯

分类 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 [[email protected]{2}] 应用[最近的一次/指定的某次]储藏
储藏 git stash drop [[email protected]{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 常用命令总结