个人向 Git 命令总结(个人开发 · 多设备同步)

本文是在原有 Git 使用笔记基础上的 修正版与增强版,适用于:

  • 单人开发
  • 多设备(Windows / macOS / Linux)同步
  • 学习 / 实验 / 算法练习类项目

⚠️ 不适用于复杂多人协作、PR / release / CI 流程


一、使用背景

本人在 Windows 台式机与 MacBook 之间切换开发,主要用于:

  • 算法学习(Python / C++ / Rust)
  • 个人实验项目
  • 长期代码积累

因此 Git 的目标只有一个:
👉 安全、简单、可预期地同步代码


二、基础命令(修正)

1️⃣ 初始化与首次提交

git init
git add .
git commit -m "Initial commit"

✅ 使用 git add .
❌ 不要使用 git add */.(会漏文件)


2️⃣ 主分支命名

git branch -M main

说明:

  • -M = --move --force
  • 强制将当前分支重命名为 main
  • 即使已存在 main 分支也会覆盖

⚠️ 仅建议在新仓库首次使用


3️⃣ 关联远程仓库并推送

git remote add origin https://github.com/xxx/xxx.git
git push -u origin main

-u 表示:

  • 记录 upstream
  • 之后可直接使用 git push / git pull

三、分支管理(推荐现代写法)

创建与切换分支

git switch -c feature_x

切换分支:

git switch main

⚠️ git checkout 功能过多,新手不推荐


合并分支(重要方向说明)

feature_x 合并进 main

git switch main
git merge feature_x

⚠️ 先切换到目标分支,再 merge


四、冲突处理流程(标准)

  1. git status 查看冲突文件
  2. 手动编辑解决冲突
  3. git add <file>
  4. git commit 生成 merge commit

Git 不会自动解决冲突,只会标记冲突位置。


五、fetch / pull 正确认知(重点修正)

❌ 错误理解

git fetch origin

不会合并
不会修改当前分支


✅ 正确流程

git fetch origin
git merge origin/main

或者 个人开发强烈推荐

git pull --ff-only

优势:

  • 保持提交历史线性
  • 避免无意义 merge commit
  • 多设备同步最安全

六、为什么个人开发不建议用 rebase

rebase 的风险

  • 重写提交历史
  • 多设备同时操作极易冲突
  • 一旦 rebase 后 push,另一台设备必炸

结论

个人开发 + 多设备 = 不要 rebase

merge 虽然“丑”,但:

  • 安全
  • 可回滚
  • 不破坏历史

七、Windows + Mac 双端最稳 Git 使用流程(推荐)

每次开始工作前

git pull --ff-only

开发过程

git status
git add -A
git commit -m "Meaningful message"

结束工作

git push

新功能 / 实验

git switch -c exp_x
# 实验完成后
git switch main
git merge exp_x
git push

八、最小可用 Git 流程图(为本项目定制)

适用场景:单人开发 + 多设备 + 主分支长期稳定

flowchart TD
A[Start Work] --> B[git pull --ff-only]
B --> C{New Feature?}
C -- No --> D[Edit Code]
D --> E[git add .]
E --> F[git commit]
F --> G[git push]
G --> H[End Work]

C -- Yes --> I[git switch -c feature_x]
I --> D
F --> J[git switch main]
J --> K[git merge feature_x]
K --> G

流程设计原则说明

  • main永远保持可用
  • 功能 / 实验:必须新分支
  • 同步远端:只用 pull --ff-only
  • 拒绝 rebase:避免历史分叉

九、使用边界声明(重要)

本文档:

✅ 适用于:

  • 个人项目
  • 学习 / 实验
  • 多设备同步

❌ 不适用于:

  • 多人协作
  • PR / review 流程
  • release / hotfix 分支模型

附录:参考资料

  • Git 官方文档
  • Pro Git Book
  • 菜鸟教程 Git

📌 原则总结

能 merge 就别 rebase,
能 pull --ff-only 就别乱 merge。