[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-indexc储藏工作目录中未暂存的东西(已经通过 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 常用命令总结