Git 核心作用与常用命令(精简版)

一、核心作用

Git 是本地代码版本管理工具,核心价值:

  1. 保存代码所有版本,随时回溯;
  2. 可设置分支并行开发,互不干扰;
二、必备基础操作(按流程)

1. 首次配置(仅需 1 次)

git config --global user.name "你的昵称" # 设置用户名(标记修改者)

git config --global user.email "任意邮箱" # 设置邮箱(无需验证)

2. 初始化版本库(给代码文件夹开启管理)

cd 进入目标文件夹

git init # 初始化本地仓库

3. 更新版本(核心)

git add . # 暂存所有修改的文件(推荐)

git commit -m "v1版本:月度NDVI导出”)

4. 版本回溯 / 切换

git log # 查看所有版本

git checkout 版本号 # 临时切换到指定版本

git checkout master # 切回最新版本

5. 新版本分支

原则1:永远在分支上修改,不直接操作历史版本,保护原版本线不混乱。

git branch # 查看所有分支

git checkout -b 分支名 # 创建并切换到新分支

git merge 分支名 # 把指定分支代码合并到当前分支(如切到master后merge v3_land)

原则2:Git 的分支 / 版本体系不是 “错一个全错” 的线性链条,而是可以单独修正源头版本,再把修正同步到后续分支。——核心的代码文件不要改变名字,便于修正同步——merge 是「把分支 A 的修改记录,整合到分支 B」,优先保留所有有效修改,只有改到同一行时才需要你手动决策,核心是 “整合” 而非 “覆盖”。

6. 修改&恢复行为

git是很保守的工具,改变文件会严格记录:使用git status。

git commit之前,一定要确保add记录修改(删除和新增)。

如果确认要删除,则git add该文件(撤销确认行为,使用git restore --staged);如果要恢复文件本身,则git restore。

git checkout HEAD = # HEAD代表当前分支的最新版本,直接从版本库恢复文件到工作区

恢复历史删除文件:只要你commit过,就可以恢复

git log --stat

可以选择恢复任意一个版本的文件

或者直接恢复,最新版本前一个版本的文件

查看现有分支:①第一版-第二版-修改了-master(主线);②第一版-v3海洋;③第一版-v3土地利用-改文件名-删除&合并修改了-删咯;④第一版-修正第一版-v1_fix-与master合并

——————————————————————————————————————————

github

——————————————————————————————————————————

你的理解核心是对的!GitHub 首先是 Git 仓库的「云备份」,但它的功能远不止备份 —— 是「云端 Git 仓库 + 协作平台 + 代码托管中心」的结合体。我用 “本地 Git vs GitHub” 的对比,把 GitHub 的核心价值讲透:

一、先肯定:GitHub 最基础的作用就是「云备份」

本地 Git 仓库只存在于你的电脑里:

  • 电脑坏了 / 丢了 → 所有代码和版本记录全丢;
  • 只能自己单机操作,没法和同事 / 合作者共享代码。

把本地仓库推送到 GitHub 后:✅ 代码和所有 commit 版本记录都存在云端,永不丢失;✅ 随时能从 GitHub 拉取仓库到新电脑,恢复所有历史版本;这就是最核心的「云备份」价值,也是新手用 GitHub 的首要目的。

二、GitHub 远超 “云备份” 的核心功能(新手必用)

功能 作用(对比本地 Git) 新手实操场景
远程仓库 本地 Git 的 “云端镜像” 执行 git push 把本地代码推到 GitHub;git pull 拉取云端最新代码
多人协作 多个人修改同一个仓库,GitHub 自动处理分支合并 和同事分工开发:你改 v3_land,他改 v3_ocean,最终在 GitHub 合并到 master
Pull Request (PR) 合并分支前 “审核代码”,避免直接改乱主分支 你改完 v1_fix 后提 PR,同事确认修改没问题,再合并到 master
Issues/Projects 管理需求 / BUG,跟踪开发进度 记录 “NDVI 公式分母为 0” 的 BUG,标记 “已修复”,关联对应的 commit
Pages/GitHub Actions 部署代码 / 自动化测试 把 NDVI 可视化结果部署成网页,或提交代码后自动检查语法错误

三、本地 Git ↔ GitHub 的核心操作(新手入门必学)

1. github上创建一个仓库,然后连接到本地

git remote add origin git@github.com:stanlyyp/20260311.git

2. 制作仓库的锁和钥匙

首先看下本地有没有钥匙:

$ ls -la ~/.ssh/
ls: cannot access '/c/Users/86152/.ssh/': No such file or directory

① 生成ed25519类型的钥匙:ssh-keygen -t ed25519 -C ”1邮箱“,yes和enter

查看钥匙:cat ~/.ssh/id_ed25519.pub

② 根据钥匙制作锁头

③ 用锁头开门

ssh -T git@github.com

④ 把物资送到仓库

四、关于合作管理仓库(共同开发)

核心要点,记这 3 条就够

  1. 自己的仓库不想分享 → 公钥只自己用,不加任何 Collaborators;
  2. 想分享单个仓库 → 用「Collaborators」加权限,不是加 SSH keys;
  3. SSH keys 绝不分享。SSH 密钥是 “账号级别的登录凭证”,Collaborators 是 “仓库级别的权限开关”—— 你要控制单个仓库的权限,就用 Collaborators,绝对不会影响你其他仓库的安全~

一、关键纠正:SSH keys vs 仓库协作权限(核心避坑)

你记混的点就在这 —— 这是两个完全不同的东西:

操作 权限范围 适用场景
把对方公钥加到「你的 GitHub 账号 → SSH and GPG keys」 对方能操作你账号下所有仓库(看 / 改 / 删都可以) 仅自己多台电脑登录(比如办公本 + 家里本)
给对方加「单个仓库 → Collaborators 权限」 对方只能操作这一个仓库,看不到你其他仓库 多人协作单个项目(核心!你要的就是这个)

二、实操:只让对方操作你指定的一个仓库(分步走,新手友好)

步骤 1:让小明准备好他的 GitHub 账号(不用给你任何密钥)

小明只需要有自己的 GitHub 账号即可,不用生成 SSH 密钥(他自己的密钥是用来登录他自己账号的,和你无关)。

步骤 2:你给小明加「单个仓库的协作权限」(核心操作)
  1. 打开你的 GitHub 仓库页面(比如 https://github.com/你的账号/ndvi-illinois);
  2. 点击仓库页面的「Settings」(设置)→ 左侧选「Collaborators and teams」;
  3. 点击「Add people」,输入小明的 GitHub 账号 / 邮箱,点击「Add collaborator」;
  4. 选择权限(新手选「Write」即可):
    • Read:只能看,不能改;
    • Write:能改代码、推送分支(适合协作);
    • Maintain/Admin:慎用(能删仓库、改权限);
  5. 小明会收到邮件邀请,他点击「Accept」(接受)后,就有这个仓库的操作权限了。
步骤 3:小明怎么操作你的仓库(他的视角)
  1. 小明先把你的仓库克隆到他电脑:
    git clone git@github.com:你的账号/ndvi-illinois.git  # 用SSH,或HTTPS都可以
    
  2. 他在本地改代码、commit 后,直接推送:
    git push
    
    ✅ 他只能推送到这个仓库,看不到你账号下的其他仓库(比如 weather-data crop-analysis 等)。
  3. ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————正确的git代码管理方式—————

完全正确! 🎯 你终于抓住了精髓!

✅ 你的理解总结:

master          ← "最终成果" (长期稳定)
    ↑
develop         ← "集成测试场" (短期,用来组合多个 feature)
    ↑ 
feature/*       ← "功能开发 + 快速试错" (中期,失败可丢弃)

实际操作流:

  1. 新功能开发 → feature/new-feature 分支上直接试错验证
  2. 功能完成了 → merge → develop 看看和其他功能能不能配合
  3. 全部 OK 了 → merge → master(吸收成果)
  4. 失败了 → delete branch,从头再来(不影响主线)

🎓 给你个完整的科研 Git 流程模板:

# === 开始一天工作 ===
git checkout master
git pull origin master

# === 决定今天要做什么 ===
git checkout -b feature/attention-mechanism  # 专注一个方向

# === 在这个分支上疯狂折腾 ===
python train.py --new-attention
# ...实验成功!...
# ...或者实验失败了,换个参数再试...

# === 成功了 ===
git add .
git commit -m "feat: 添加注意力机制模块"
git checkout master
git merge feature/attention-mechanism
git push origin master

# === 要整合多个功能?===
git checkout develop
git merge feature/land-model
git merge feature/ocean-data
# 在 develop 上跑整体测试...
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐