Files
OmooLab/notes/git.md

132 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 工作流程
我们选择 Git 作为版本管理的工具(确保已经安装 Git 和 VS Code,详见[starter](starter.md)),工作流程主要是以下 4 点:
- 大家在自己的「个人分支」工作,互不干扰
- 通过「提交」,有选择性地,确认改动到「个人分支」(个人审核 AI)
- 不时地,接收其他人在「主分支」的改动
- 通过「合并请求」,有监督地,确认改动到「主分支」(团队审核个人)
```mermaid
flowchart LR
文件改动 -- 提交 --> 个人分支 -- 合并请求 --> 主分支
```
通过上述流程,个人的本地改动被,有选择性地、有监督地被同步到项目主分支。
有效避免同步盘方案下,高频改动文件的冲突和 AI 无法参与的尴尬。这样,即释放了本地创作的限制,又规范了线上协作的管理,还解决了私有盘无法分享的问题。
接下来,我将详细描述操作步骤。
## 在自己的「个人分支」工作
**1. 下载仓库(Repository)**
浏览器打开仓库地址 <https://git.omoolab.xyz/[orgn-name]/[repo-name]>,点右上的 Code 按钮,点击 Open with VS Code
![](assets/Pasted%20image%2020260415192621.png)
> 或 Bash 执行 `git clone [repo.git]`
**2. 创建自己的个人分支**
点左下角的`main`,点击`Create new branch...`,然后输入分支名`[your-name]/[do-something]`(比如`manan/dev`)
![](assets/Pasted%20image%2020260415201156.png)
> 或 Bash 执行 `git checkout -b [your-name]/[do-something]`
创建后,首次推送分支到远程。这样远程也有属于你的分支了
![](assets/Pasted%20image%2020260415201626.png)
> 或 Bash 执行 `git push -u origin [branch-name]`
## 通过「提交」来确认改动到「个人分支」
**1. 有选择性地添加(Add)到暂存改动**
仓库的任何改动都会罗列在 Changes 下,此时它们并没有得到确认。点击 + 来添加到 Staged Changes 下(你可以只添加部分改动)
![](assets/Pasted%20image%2020260415202442.png)
> 或 Bash 执行 `git add [file]`
**2. 提交(Commit)暂存改动**
输入「提交说明」来记录改动了什么(或者点击小星按钮让 AI 来帮忙总结)。点击 Commit 按钮来确认改动。
![](assets/Pasted%20image%2020260415202608.png)
> 或 Bash 执行 `git commit -m [message]`
**3. 推送(Push)到远程的「个人分支」**
点击三个点按钮打开菜单,点击 Push 按钮
![](Pasted%20image%2020260415202931.png)
> 或 Bash 执行 `git push`
这是工作中最常见的循环:一边工作,一边适时地 add > commit > push
## 接收其他人在「主分支」的改动
当你在自己分支工作的时候,其他人也在不断更新「主分支」`main`。有时需要对齐一下,拉取(Pull)并合并(Merge)来自`main`的改动到你自己的分支。
点击三个点按钮打开菜单,点击 Pull from...,并选择`origin/main`(注意不是`main`分支,它是本地的,并非最新)
![](assets/Pasted%20image%2020260415230956.png)
> 或 Bash 执行 `git pull origin main`
如果冲突,会进入`([branch-name]|MERGING)` 状态,详见 [解决冲突](#解决合并冲突)
## 通过「合并请求」来确认改动到「主分支」
合并请求(Pull Request,简称 PR)就是申请「个人分支」改动并入「主分支」
浏览器访问仓库主页,切换到「个人分支」,点击 New Pull Request 按钮(3)
![](assets/Pasted%20image%2020260415232911.png)
确认一下合并方向是否正确,然后填写 PR 标题和内容(改了什么,加了什么),最后点击 Create Pull Request
![](assets/Pasted%20image%2020260415233225.png)
PR 会加入队列,等待审核通过。通过后就会合并到`main`啦。
![](assets/Pasted%20image%2020260415233620.png)
> 注意,如果在提 PR 后,如果你又更新了你的分支,不必再次提 PR
> 注意,在提 PR 前,一定要在本地执行[同步「主分支」的改动](#同步「主分支」的改动)(并 push 到了远程)
## 解决合并冲突
解决完冲突后,继续
```bash
git merge --continue
```
大文件处理完合并后,变成指针文件,这时候用下面指令拉回
```bash
git lfs pull
```
或者退出,不解决
```bash
git merge --abort
```
取消曾经追踪过的文件,但不删除文件
```bash
git rm --cached [file]
```