parent
051678b025
commit
3c3d14657a
|
@ -52,16 +52,12 @@
|
||||||
- [4.2. 清理本地仓库](#42-清理本地仓库)
|
- [4.2. 清理本地仓库](#42-清理本地仓库)
|
||||||
- [5. Git 服务器](#5-git-服务器)
|
- [5. Git 服务器](#5-git-服务器)
|
||||||
- [5.1. Gitea 的下载和安装](#51-gitea-的下载和安装)
|
- [5.1. Gitea 的下载和安装](#51-gitea-的下载和安装)
|
||||||
- [5.2. 管理界面概览](#52-管理界面概览)
|
- [5.2. 超级管理员](#52-超级管理员)
|
||||||
- [5.3. 用户界面概览](#53-用户界面概览)
|
- [5.3. 普通用户](#53-普通用户)
|
||||||
- [5.4. 创建组织](#54-创建组织)
|
- [5.4. 组织和团队](#54-组织和团队)
|
||||||
- [5.5. 创建仓库](#55-创建仓库)
|
- [5.5. 版本仓库及分支保护](#55-版本仓库及分支保护)
|
||||||
- [5.6. 克隆仓库到本地](#56-克隆仓库到本地)
|
- [5.10. 工单系统](#510-工单系统)
|
||||||
- [5.7. 推送变更](#57-推送变更)
|
- [5.11. Gitea 综合实践](#511-gitea-综合实践)
|
||||||
- [5.8. 推送审批](#58-推送审批)
|
|
||||||
- [5.9. 版本发布](#59-版本发布)
|
|
||||||
- [5.10. 创建 Issue](#510-创建-issue)
|
|
||||||
- [5.11. 分支管理](#511-分支管理)
|
|
||||||
- [6. 外部参考资料](#6-外部参考资料)
|
- [6. 外部参考资料](#6-外部参考资料)
|
||||||
|
|
||||||
## 1. 认识 Git
|
## 1. 认识 Git
|
||||||
|
@ -542,6 +538,10 @@ git diff <commit id 0> <commit id 1> [file/folder]
|
||||||
|
|
||||||
### 3.11. Tag 管理
|
### 3.11. Tag 管理
|
||||||
|
|
||||||
|
不难发现,Git 会为开发过程中的每次提交时都创建一个版本管理节点。这样可以任意的调出这些节点信息,进行版本比较或代码回溯。
|
||||||
|
|
||||||
|
在实际开发过程中,有些节点会变得比其他节点更重要一些,比如在某个节点上我们发布了一个版本。这时候使用 Tag 功能对关键节点进行管理。
|
||||||
|
|
||||||
可以通过:
|
可以通过:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -598,21 +598,27 @@ git push <repository> --delete tag <tag name>
|
||||||
git remote prune <repository>
|
git remote prune <repository>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
![Tag 管理](./img/Git_使用说明/git-tag.gif)
|
||||||
|
|
||||||
### 3.12. 时光穿梭
|
### 3.12. 时光穿梭
|
||||||
|
|
||||||
如果文件尚未 stash,可使用 checkout 命令撤回修改:
|
在进行时光穿梭前,需要先了解下 Git 文件变更的几个状态:变更(Changed)、缓存(Stashed)、提交(Committed)、上传(Pushed)。
|
||||||
|
|
||||||
|
![文件变更的状态](./img/Git_使用说明/git-commit-state.gif)
|
||||||
|
|
||||||
|
如果文件尚未 Stash,可使用 Checkout 命令撤回修改:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git checkout -- <file>
|
git checkout -- <file>
|
||||||
```
|
```
|
||||||
|
|
||||||
如果文件已 stash 但是没有 commit,可使用 reset 命令撤回修改:
|
如果文件已 Stash 但是没有 Commit,可使用 Reset 命令撤回修改:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git reset HEAD <file>
|
git reset HEAD <file>
|
||||||
```
|
```
|
||||||
|
|
||||||
如果文件已经 commit,可使用下列命令
|
如果文件已经 Commit,可使用下列命令
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git reset --soft <commit id>
|
git reset --soft <commit id>
|
||||||
|
@ -621,15 +627,25 @@ git reset --hard HEAD~10
|
||||||
git revert <commit id>
|
git revert <commit id>
|
||||||
```
|
```
|
||||||
|
|
||||||
注意 soft 与 hard 的区别主要在于 hard 不保留工作区中的内容,但是 soft 保留工作区中的内容。而 reset 与 revert 的区别在于 revert 是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在,而 reset 是指将 HEAD 指针指到指定提交,历史记录中不会出现放弃的提交记录。
|
注意 Soft 与 Hard 的区别主要在于 Hard 不保留工作区中的内容,但是 Soft 保留工作区中的内容。而 Reset 与 Revert 的区别在于 Revert 是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在,而 Reset 是指将 HEAD 指针指到指定提交,历史记录中不会出现放弃的提交记录。
|
||||||
|
|
||||||
如果想要修改某个历史提交,可以使用 checkout 命令:
|
![撤销变更](./img/Git_使用说明/git-reset.gif)
|
||||||
|
|
||||||
|
如果想要修改某个历史提交,可以使用 Checkout 命令:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git checkout <commit id>
|
git checkout <commit id/tag>
|
||||||
```
|
```
|
||||||
|
|
||||||
使用该命令的条件是没有待 commit 或待 stash 的文件。
|
使用该命令的条件是没有待 Commit 或待 Stash 的文件。Checkout 命令会将检出的版本放到一个临时分支里,如果希望放到指定的分支中,需要添加 -b 参数:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git checkout <commit id/tag> -b <branch name>
|
||||||
|
```
|
||||||
|
|
||||||
|
![回溯代码](./img/Git_使用说明/git-checkout-commit.gif)
|
||||||
|
|
||||||
|
此时我们可以基于这个历史 Commit 和当前新分支上继续进行开发。
|
||||||
|
|
||||||
### 3.13. Rebase
|
### 3.13. Rebase
|
||||||
|
|
||||||
|
@ -851,25 +867,39 @@ git clean -ifdx
|
||||||
|
|
||||||
![Gitea 的安装和初始化](img/Git_使用说明/install-init-gitea.gif)
|
![Gitea 的安装和初始化](img/Git_使用说明/install-init-gitea.gif)
|
||||||
|
|
||||||
### 5.2. 管理界面概览
|
Gitea 可以将网站设置成必须登录才能探索版本仓库或组织。
|
||||||
|
|
||||||
### 5.3. 用户界面概览
|
### 5.2. 超级管理员
|
||||||
|
|
||||||
### 5.4. 创建组织
|
管理员可以添加或删除用户,创建组织和项目,拥有最大的操作权限。
|
||||||
|
|
||||||
### 5.5. 创建仓库
|
### 5.3. 普通用户
|
||||||
|
|
||||||
### 5.6. 克隆仓库到本地
|
普通用于拥有的权限由管理员进行设置,可以允许或禁止用户创建组织或项目,或者指定其能够创建项目的数量。
|
||||||
|
|
||||||
### 5.7. 推送变更
|
普通用户是 Gitea 的主要使用者。
|
||||||
|
|
||||||
### 5.8. 推送审批
|
### 5.4. 组织和团队
|
||||||
|
|
||||||
### 5.9. 版本发布
|
Gitea 支持创建组织,一个组织可以是一个项目团队共通维护的多个版本仓库。组织可以设置成对非组织成员可见或者不可见。
|
||||||
|
|
||||||
### 5.10. 创建 Issue
|
一个组织下可以创建多个团队,使用团队来维护组织成员的好处是可以为每组成员设定不同的读写权限。
|
||||||
|
|
||||||
### 5.11. 分支管理
|
### 5.5. 版本仓库及分支保护
|
||||||
|
|
||||||
|
无论是独立的版本还是组织所拥有的仓库,都可以被设定为公开或者私有。公开的仓库可以被所有人看见,而私有的仓库只能组织成员,或仓库创建者所指定的参与者才能看见。
|
||||||
|
|
||||||
|
仓库的所有者还可以设定其他人是否可以直接 Commit 到谋代码分支,还是必须经过评审才能被合并进来,该功能由分支保护机制实现。
|
||||||
|
|
||||||
|
当仓库的参与者需要将代码合并到谋分支时,可以发起合并请求,当评审通过后,请求将被合并。
|
||||||
|
|
||||||
|
### 5.10. 工单系统
|
||||||
|
|
||||||
|
当某个问题需要被解决是,可以在工单系统发起一个请求,项目的参与者可以对工单进行讨论,其是否需要被实现以及如何实现。当项目更新解决了该问题后,可以将该工单关闭。
|
||||||
|
|
||||||
|
### 5.11. Gitea 综合实践
|
||||||
|
|
||||||
|
![Gitea 综合实践](img/Git_使用说明/gitea.gif)
|
||||||
|
|
||||||
## 6. 外部参考资料
|
## 6. 外部参考资料
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
After Width: | Height: | Size: 3.7 MiB |
Binary file not shown.
After Width: | Height: | Size: 4.1 MiB |
Binary file not shown.
After Width: | Height: | Size: 5.1 MiB |
Binary file not shown.
After Width: | Height: | Size: 14 MiB |
Loading…
Reference in New Issue