From eb22321c3baf07e0f87f3b06d970d2b21131e995 Mon Sep 17 00:00:00 2001 From: "rick.chan" Date: Thu, 24 Jun 2021 15:08:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20Repository=20=E7=AE=A1?= =?UTF-8?q?=E7=90=86.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: rick.chan --- Software/Applications/Git/Git_使用说明.md | 43 ++++++++++++++--------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/Software/Applications/Git/Git_使用说明.md b/Software/Applications/Git/Git_使用说明.md index fb2edcf..1b4782f 100644 --- a/Software/Applications/Git/Git_使用说明.md +++ b/Software/Applications/Git/Git_使用说明.md @@ -321,7 +321,18 @@ git push --delete tag git remote prune ``` -## 12.Rebase +## 12. Repository 管理 + +```bash +# 添加 repository +git remote add +# 删除 repository +git remote rm +# 修改 repository 的 url +git remote set-url +``` + +## 13.Rebase 由于合并分支,或从远程仓库中更新代码产生了额外的 merge 节点,此时可通过 rebase 命令消除这些额外的 merge 节点,使 git 历史的线性更好: @@ -366,7 +377,7 @@ git rebase 命令继续 rebase。 -## 13.同步 fork 的仓库 +## 14.同步 fork 的仓库 基本原理是增加上游仓库,然后进行 fetch 和 merge,最后 push 到当前仓库,如果已经添加了上游仓库,无需再次添加。 @@ -377,9 +388,9 @@ git merge upstream/master git push ``` -## 14.Patch +## 15.Patch -### 14.1.生成 Patch +### 15.1.生成 Patch ```bash # 生成最近的 1 次 commit 的 patch @@ -396,7 +407,7 @@ git format-patch -1 git format-patch --root ``` -### 14.2.应用 Patch +### 15.2.应用 Patch 将所有 Patch 拷贝到某一文件夹下,然后: @@ -411,7 +422,7 @@ git am --abort git am --resolved ``` -### 14.3.合并多个 Patch +### 15.3.合并多个 Patch ```bash # 先应用 patch @@ -422,9 +433,9 @@ git rebase -i HEAD~n git format-patch HEAD^ ``` -## 15.Submodule +## 16.Submodule -### 15.1.添加 Submodule +### 16.1.添加 Submodule 在主仓库中: @@ -441,7 +452,7 @@ git commit -sm git push ``` -### 15.2.在其他地方使用合并后的版本库 +### 16.2.在其他地方使用合并后的版本库 ```bash git clone @@ -451,7 +462,7 @@ git submodule init && git submodule update git clone --recursive ``` -### 15.3.更新合并后的版本库 +### 16.3.更新合并后的版本库 ```bash cd @@ -460,7 +471,7 @@ cd .. git commit [...] ``` -### 15.4.批量操作 +### 16.4.批量操作 ```bash git submodule foreach @@ -469,11 +480,11 @@ git submodule foreach git checkout master git submodule foreach git submodule update ``` -### 15.5.如何保持 Submodule 的同步 +### 16.5.如何保持 Submodule 的同步 如果对第三方 Submodule 进行了定制,但是处于某些原因这些修改并不能提交到远程去。那就要先 fork 第三方仓库,然后在 fork 的基础上添加 Submodule。之后自己的修改或第三方有更新都同步到 fork 的仓库上。 -### 15.6.删除 Submodule +### 16.6.删除 Submodule ```bash # deinit @@ -482,9 +493,9 @@ git submodule deinit git rm ``` -## 16.环境变量 +## 17.环境变量 -### 16.1.GIT_TERMINAL_PROMPT +### 17.1.GIT_TERMINAL_PROMPT 该变量设置是否允许 git 在终端中弹出提示,如 https 的用户密码输入提示等。如果 git clone 时出现:“terminal prompts disabled”字样,可在终端中进行如下设置: @@ -492,7 +503,7 @@ git rm GIT_TERMINAL_PROMPT=1 ``` -## 17.外部参考资料 +## 18.外部参考资料 1. [Pro Git](https://git-scm.com/book/zh/v2) 2. [Git Reference Manual](https://git-scm.com/docs)