福生无量摸鱼天尊

github 代码管理 —— SourceTree

2025/12/23
5
0

网络代理

首先,网络代理方面非常重要,这关乎于能否正常链接github,在 SourceTree 中设置代理:

  1. 点击菜单 工具(Tools) → 选项(Options)

  2. 选择 网络(Network) 标签页

  3. 勾选 启用代理服务器(Enable HTTP proxy server)

  4. 填写你的代理信息:

    • 代理主机:127.0.0.1 或你的代理服务器地址

    • 代理端口:7890 或你的代理端口(常见的是 7890, 1080, 8080)

    • 如果代理需要认证,填写用户名和密码

  5. 点击 确定(OK)

所有的起点 —— 新建一条分支

创建新分支:

  1. 在左侧 "分支" 面板中,右键点击当前分支(如 main

  2. 选择 "新建分支"

  3. 输入你的分支名(如 my-custom-feature

  4. 勾选 "检出新分支"(自动切换到这个分支)

  5. 点击 "确定"

魔改的日常

进行修改:

  • 在你的项目文件夹中编辑代码("魔改")

提交更改:

  1. 在 SourceTree 中,你会看到 "未暂存文件" 列表

  2. 勾选要提交的文件(或点击 "暂存所有")

  3. 在下方的提交信息框中填写说明(如 "添加了新功能X")

  4. 点击右下角的 "提交" 按钮

推送到远程:

  • 点击工具栏的 "推送" 按钮

  • 确保勾选你的分支(如 my-custom-feature

  • 点击 "确定"

合并一条分支的多个节点

方法A:交互式变基(推荐)

  1. 右键点击你的分支,选择 "变基子代"

  2. 勾选 "交互式变基"

  3. 在弹出的提交列表中,除了第一个提交,把其他的都改为 squashfixup

  4. 完成后会生成一个新的合并提交

方法B:软重置后重新提交

  1. 右键点击分支最早的父提交,选择 "重置当前分支到此次提交"

  2. 选择 "软重置"(保留工作区更改)

  3. 所有更改会回到暂存区

  4. 重新做一次提交,包含所有更改

AB的虽然最终代码一样,但生成的 Git 历史不同:

  • 交互式变基:产生一个可追溯的合并提交,包含所有被压缩提交的元数据,推荐合并多个模块的时候使用

  • 软重置:产生一个全新的提交,与之前的历史完全断开,推荐单个模块内合并多次开发的时候使用

举个例子:

  • 交互式变基:像用扫描仪把 5 张草图扫描后,用 Photoshop 分层合并,可以保留每层的标签和备注

  • 软重置:像把 5 张草图全撕了,直接在一张新纸上重新画,之前的草图痕迹完全消失

特性

方法A:交互式变基

方法B:软重置+重新提交

操作方式

Git 自动合并提交

手动重置后重新提交

灵活性

高,可选择保留哪些提交、调整顺序

低,一次性合并所有提交

提交信息

保留所有原始提交信息,可编辑合并

完全丢弃中间提交信息,需重写

操作难度

稍复杂,需要理解 rebase 流程

简单直接,适合新手

适用场景

需要精细控制合并过程

快速合并,不关心中间历史

合并一条分支到主分支

  1. 切换到主分支:

    • 双击左侧的 main 分支

  2. 合并你的分支:

    • 右键点击你的分支(如 my-custom-feature

    • 选择 "合并 my-custom-feature 到当前分支"

    • 选择合并方式:

      • 合并提交:保留两个分支历史(推荐)

      • 变基:把你的提交应用到主分支顶端(历史更线性)

      • squash :把你的所有提交压缩成一个提交

  3. 推送到远程:

    • 点击 "推送" 按钮,推送合并后的主分支