增加 Repository 管理.

Signed-off-by: rick.chan <chenyang@autoai.com>
This commit is contained in:
rick.chan 2021-06-24 15:08:43 +08:00
parent d99cc1626b
commit eb22321c3b
1 changed files with 27 additions and 16 deletions

View File

@ -321,7 +321,18 @@ git push <repository> --delete tag <tag name>
git remote prune <repository>
```
## 12.Rebase
## 12. Repository 管理
```bash
# 添加 repository
git remote add <repository> <utl>
# 删除 repository
git remote rm <repository>
# 修改 repository 的 url
git remote set-url <repository> <utl>
```
## 13.Rebase
由于合并分支,或从远程仓库中更新代码产生了额外的 merge 节点,此时可通过 rebase 命令消除这些额外的 merge 节点,使 git 历史的线性更好:
@ -366,7 +377,7 @@ git rebase <from branch> <to branch>
命令继续 rebase。
## 13.同步 fork 的仓库
## 14.同步 fork 的仓库
基本原理是增加上游仓库,然后进行 fetch 和 merge最后 push 到当前仓库,如果已经添加了上游仓库,无需再次添加。
@ -377,9 +388,9 @@ git merge upstream/master
git push <repository>
```
## 14.Patch
## 15.Patch
### 14.1.生成 Patch
### 15.1.生成 Patch
```bash
# 生成最近的 1 次 commit 的 patch
@ -396,7 +407,7 @@ git format-patch -1 <commit id>
git format-patch --root <commit id>
```
### 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 <message>
git push
```
### 15.2.在其他地方使用合并后的版本库
### 16.2.在其他地方使用合并后的版本库
```bash
git clone <main-repository url>
@ -451,7 +462,7 @@ git submodule init && git submodule update
git clone --recursive <main-repository url>
```
### 15.3.更新合并后的版本库
### 16.3.更新合并后的版本库
```bash
cd <sub-repository url>
@ -460,7 +471,7 @@ cd ..
git commit [...]
```
### 15.4.批量操作
### 16.4.批量操作
```bash
git submodule foreach <command>
@ -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 <submodule-name>
git rm <submodule-name>
```
## 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 <submodule-name>
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)