diff --git a/docs/git.html b/docs/git.html index 60080f3c..4274a63e 100644 --- a/docs/git.html +++ b/docs/git.html @@ -41,19 +41,22 @@
本备忘单总结了常用的 Git 命令行指令,以供快速参考。
创建一个新的本地存储库
-$ git init [project name]
+$ git init [项目名称]
-克隆存储库
-$ git clone git_url
+克隆存储库(代码仓库)
+$ git clone <git_url>
将存储库克隆到指定目录
-$ git clone git_url 指定目录
+$ git clone <git_url> 指定目录
-
将存储库克隆到指定目录,并指定分支
+$ git clone <git_url> -b <分支名称> 指定目录
+
+在工作目录中显示修改后的文件,为您的下一次提交暂存
$ git status
@@ -84,7 +87,8 @@
在指定分支之前应用当前分支的任何提交
$ git rebase [branch]
-设置将附加到您的提交和标签的名称
$ git config --global user.name "name"
@@ -97,30 +101,55 @@
在文本编辑器中编辑全局配置文件
$ git config --global --edit
-显示本地 repo
配置设置
$ git config --list
+
+删除全局设置
+$ git config --global --unset <entry-name>
+
+列出所有本地分支
$ git branch
列出所有分支,本地和远程
$ git branch -av
-切换到 my_branch,并更新工作目录
+切换到 my_branch
,并更新工作目录
$ git checkout my_branch
-创建一个名为 new_branch 的新分支
+创建一个名为 new_branch
的新分支
$ git checkout -b new_branch
-删除名为 my_branch 的分支
+删除名为 my_branch
的分支
$ git branch -d my_branch
-将分支 A 合并到分支 B
+将分支 A
合并到分支 B
$ git checkout branchB
$ git merge branchA
标记当前提交
$ git tag my_tag
-从远程分支中创建并切换到本地分支
+$ git checkout -b <branch-name> origin/<branch-name>
+
+# 保存已修改和分阶段的更改
+$ git stash
+# 列出隐藏文件更改的堆栈顺序
+$ git stash list
+# 从存储堆栈顶部编写工作
+$ git stash pop
+# 丢弃存储堆栈顶部的更改
+$ git stash drop
+# 回到某个 stash 的状态
+$ git stash apply <stash@{n}>
+# 删除所有的 stash
+$ git stash clear
+
+显示当前活动分支的提交历史
$ git log
@@ -136,7 +165,18 @@
以人类可读的格式显示 Git 中的任何对象
$ git show [SHA]
-# 从工作目录中删除文件并暂存删除
+git rm <filename>
+
+# 从版本控制中删除文件但在本地保留文件
+git rm --cached <filename>
+
+# 更改文件名并准备提交
+git mv <filename-orig> <filename-renamed>
+
+从该 Git 远程获取所有分支
$ git fetch [alias]
@@ -156,7 +196,8 @@
将另一个分支的一个特定提交合并到当前分支
$ git cherry-pick [commit_id]
-添加一个 git URL 作为别名
$ git remote add [alias] [url]
@@ -172,19 +213,6 @@
更改 git repo 的 URL
$ git remote set-url origin [git_url]
-保存已修改和分阶段的更改
-$ git stash
-
-列出隐藏文件更改的堆栈顺序
-$ git stash list
-
-从存储堆栈顶部编写工作
-$ git stash pop
-
-丢弃存储堆栈顶部的更改
-$ git stash drop
-
从项目中删除文件并暂存删除以进行提交
$ git rm [file]
@@ -196,17 +224,27 @@
$ git log --stat -M
/logs/*
-# “!” 意思是不要忽视
-!logs/.gitkeep
-# 忽略 Mac 系统文件
-.DS_store
-# 忽略 node_modules 文件夹
-node_modules
-# 忽略 SASS 配置文件
-.sass-cache
+/logs/*
+# “!” 意思是不要忽视
+!logs/.gitkeep
+# 忽略 Mac 系统文件
+.DS_store
+# 忽略 node_modules 文件夹
+node_modules
+# 忽略 SASS 配置文件
+.sass-cache
.gitignore
文件指定了 Git 应该忽略的未跟踪的文件
+
$ cat ~/.ssh/config
+Host gitlab.com
+# 直接使用 shadowsocks 提供的 socks5 代理端口
+ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p
+
+Host github.com
+ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p
+
+
快速切换到上一个分支
$ git checkout -
-只获取远程分支
+只获取所有远程分支
$ git branch -r
从另一个分支签出单个文件
@@ -338,16 +376,162 @@$ git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d
-$ git config --global core.quotepath false
-
# 切换到 B 分支
$ git checkout <B>
# 将 A 分支 <hash-id> 的内容 pick 到 B 分支
$ git cherry-pick <hash-id>
-