因在一个不能访问网络笔记的蛋疼内网里工作,通过此blog做些零碎的笔记,供个人备忘、速查。
关于git的系统性学习,可以看CSDN的 CODE帮助文档,真是一个很棒的git学习资源。
【文件 .gitignore 的格式规范】
所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式最后跟斜杠(/)说明要忽略的是目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
【要查看暂存前后的文件更新了哪些部分】
不加参数直接输入 git diff
【要看已暂存文件和上次提交时的快照之间的差异】
用 git diff --cached 命令。(Git 1.6.1 及更高版本还允许使用 git diff --staged)
【跳过使用暂存区域】
只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
【从Git库和工作目录中移除文件】
git rm
【从Git库中移除文件,但保留在当前工作目录中】
git rm --cached
【递归删除当前目录及其子目录中所有 ~ 结尾的文件】
git rm \*~
【移动文件】
git mv file_from file_to
【显示每次提交的内容差异】
git log -p
【显示最近的两次更新】
git log -2
【显示简要的增改行数统计】
git log --stat
【只显示 --stat 中最后的行数修改添加移除统计】
git log --shortstat
【仅在提交信息后显示已修改的文件清单】
git log --name-only
【显示新增、修改、删除的文件清单】
git log --name-status
【将每个提交放在一行显示】
git log --pretty=oneline
【定制要显示的记录格式】
git log --pretty=format:"%h - %an, %ar : %s"
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
【用oneline 或 format 时结合 --graph 选项,展示每个提交所在的分支及其分化衍合情况】
git log --pretty=format:"%h %s" --graph
【仅显示 SHA-1 的前几个字符,而非所有的 40 个字符】
git log --abbrev-commit
【使用较短的相对时间显示(比如,“2 weeks ago”)】
git log --relative-date
【修改最后一次提交】
git commit --amend
【取消已经暂存的文件】
git reset HEAD <file>...
【取消对文件的修改】
git checkout -- <file>...
【添加远程仓库】
git remote add [shortname] [url]
【从远程仓库抓取数据】
git fetch [remote-name]
【推送数据到远程仓库】
git push [remote-name] [branch-name]
【查看远程仓库信息】
git remote show [remote-name]
【远程仓库的删除和重命名】
git remote rm
git remote rename
【新建含附注的标签】
git tag -a <tag> -m '<message>'
【查看相应标签的版本信息】
git show <tag>
【签署标签】(签署者要有私钥)
git tag -s <tag> -m '<message>'
【验证标签】(需要有签署者的公钥,存放在 keyring 中)
git tag -v <tag>
【后期加注标签】
git tag -a <tag> <hashcode>
【分享标签】
git push <remote> <tag>
【推送所有本地新增标签】
git push <remote> --tags
【Git 命令别名】
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
git config --global alias.visual '!gitk'
【创建分支】
git branch <branchname>
【切换分支】
git checkout <branchname>
【创建并同时切换分支】
git checkout -b <branchname>
【合并分支】
git merge <branchname>
【解决冲突】
git mergetool
【查看各个分支最后一个提交对象的信息】
git branch -v
【查看哪些分支已被并入当前分支】
git branch --merge
【删除分支】
git branch -d <branchname>
【查看尚未合并的分支】
git branch --no-merged
【强制删除尚未合并的分支】
git branch -D <branchname>
【分支的衍合】
git rebase <base>
关于git的系统性学习,可以看CSDN的 CODE帮助文档,真是一个很棒的git学习资源。
【文件 .gitignore 的格式规范】
所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式最后跟斜杠(/)说明要忽略的是目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
【要查看暂存前后的文件更新了哪些部分】
不加参数直接输入 git diff
【要看已暂存文件和上次提交时的快照之间的差异】
用 git diff --cached 命令。(Git 1.6.1 及更高版本还允许使用 git diff --staged)
【跳过使用暂存区域】
只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
【从Git库和工作目录中移除文件】
git rm
【从Git库中移除文件,但保留在当前工作目录中】
git rm --cached
【递归删除当前目录及其子目录中所有 ~ 结尾的文件】
git rm \*~
【移动文件】
git mv file_from file_to
【显示每次提交的内容差异】
git log -p
【显示最近的两次更新】
git log -2
【显示简要的增改行数统计】
git log --stat
【只显示 --stat 中最后的行数修改添加移除统计】
git log --shortstat
【仅在提交信息后显示已修改的文件清单】
git log --name-only
【显示新增、修改、删除的文件清单】
git log --name-status
【将每个提交放在一行显示】
git log --pretty=oneline
【定制要显示的记录格式】
git log --pretty=format:"%h - %an, %ar : %s"
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
【用oneline 或 format 时结合 --graph 选项,展示每个提交所在的分支及其分化衍合情况】
git log --pretty=format:"%h %s" --graph
【仅显示 SHA-1 的前几个字符,而非所有的 40 个字符】
git log --abbrev-commit
【使用较短的相对时间显示(比如,“2 weeks ago”)】
git log --relative-date
【修改最后一次提交】
git commit --amend
【取消已经暂存的文件】
git reset HEAD <file>...
【取消对文件的修改】
git checkout -- <file>...
【添加远程仓库】
git remote add [shortname] [url]
【从远程仓库抓取数据】
git fetch [remote-name]
【推送数据到远程仓库】
git push [remote-name] [branch-name]
【查看远程仓库信息】
git remote show [remote-name]
【远程仓库的删除和重命名】
git remote rm
git remote rename
【新建含附注的标签】
git tag -a <tag> -m '<message>'
【查看相应标签的版本信息】
git show <tag>
【签署标签】(签署者要有私钥)
git tag -s <tag> -m '<message>'
【验证标签】(需要有签署者的公钥,存放在 keyring 中)
git tag -v <tag>
【后期加注标签】
git tag -a <tag> <hashcode>
【分享标签】
git push <remote> <tag>
【推送所有本地新增标签】
git push <remote> --tags
【Git 命令别名】
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
git config --global alias.visual '!gitk'
【创建分支】
git branch <branchname>
【切换分支】
git checkout <branchname>
【创建并同时切换分支】
git checkout -b <branchname>
【合并分支】
git merge <branchname>
【解决冲突】
git mergetool
【查看各个分支最后一个提交对象的信息】
git branch -v
【查看哪些分支已被并入当前分支】
git branch --merge
【删除分支】
git branch -d <branchname>
【查看尚未合并的分支】
git branch --no-merged
【强制删除尚未合并的分支】
git branch -D <branchname>
【分支的衍合】
git rebase <base>