跳转至

Git 常用命令

Git 是目前世界上最流行的分布式版本控制系统。专门负责记录你代码的每一次修改,并在多人协作时防止代码冲突。

标准流程

一、下载别人仓库 → 本地修改、提交上传(Fork/克隆流程)

  1. 新建空文件夹,不要 git init!
  2. 终端进入文件夹,克隆代码
    git clone 仓库地址.git
    
  3. 进入项目文件夹
    cd 仓库名
    
  4. 新建开发分支(规范写法,不直接改main
    git switch -c feature/my-edit
    
  5. 修改代码
  6. 提交暂存+本地记录
    git add .
    git commit -m "修改isaac仿真参数"
    
  7. 第一次推送新分支
    git push -u origin feature/my-edit
    
  8. 以后修改:直接
    git add .
    git commit -m ""
    git push
    

二、自己从零新建项目 → 上传GitHub全流程

  1. 本地新建文件夹,写好自己代码
  2. 终端进入文件夹
    git init
    
  3. GitHub网页新建空白仓库(不要勾选README),复制https地址
  4. 关联远程仓库
    git remote add origin https://xxx.git
    
  5. 提交代码
    git add .
    git commit -m "初始化项目"
    
  6. 第一次推送main主干
    git push -u origin main
    
  7. 后续日常修改:
    git add .
    git commit -m ""
    git push
    

三、公共电脑临时写代码 → 备份到自己的 GitHub

核心原则:不污染公共电脑(不留个人信息、不缓存密码),用完即走。

前置准备:生成 GitHub Personal Access Token(只需做一次)

GitHub 已停止用账号密码推送代码,必须用 PAT(个人访问令牌) 代替密码:
GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token
权限勾选 repo 即可,生成后立即复制保存好(只显示一次)。


  1. 在公共电脑上写好代码,终端进入项目文件夹
  2. 初始化本地仓库
    git init
    

    若提示默认分支名为 master,执行 git branch -m main 改为 main,与 GitHub 保持一致。
    也可以一劳永逸:git config --global init.defaultBranch main

  3. 只配置本项目的用户信息--local 只写入当前仓库的 .git/config,不影响这台电脑的全局设置)
    git config --local user.name alannian
    git config --local user.email 2524833878@qq.com
    
  4. GitHub 网页新建空白仓库(不勾选 README),复制 https 地址
  5. 关联远程仓库
    git remote add origin https://github.com/你的用户名/仓库名.git
    
  6. 提交并推送(会弹出用户名和密码提示)
    git add .
    git commit -m "备份代码"
    git push -u origin main
    

此时会要求输入东西,用户名填 GitHub 账号,密码填生成的 PAT,不是 GitHub 登录密码
生成PAT:PAT 在 GitHub → Settings → Developer settings → Personal access tokens 里生成,勾选 repo 权限就够用了。
20260601215043 20260601215156

  1. 推送完成后,清除本机缓存的凭据(重要!)
    git credential reject
    
    或者直接在系统中清除:
    Windows:控制面板 → 凭据管理器 → Windows 凭据 → 找到 github.com 相关条目 → 删除
    Ubuntugit config --global --unset credential.helper,然后删除 ~/.git-credentials

3套流程核心区别

  1. 别人项目:用 clone → 绝对不用 git init
  2. 自己新项目:本地先 git init → 再关联远程
  3. 电脑用户名邮箱 全局只配1次,两个流程都不用重复配
  4. 所有新分支第一次push都要 -u,绑定后只用 git push

日常工作流

黄金法则(最省心、最安全)

每次准备写笔记时,第一件事永远是同步云端最新代码:

git pull

写完笔记准备离开时,执行标准收工流程:

git add .
git commit -m "简要描述更新了什么"
git push


忘记 git pull 就直接写的后果

如果云端有更新(比如另一台电脑昨天刚提交过),而你今天忘记 pull 就直接开始写笔记了,会触发以下 Git 保护机制:

  1. 写完直接敲 git pull(本地还未 commit)
  2. 结果:Git 会发出警告,甚至拒绝拉取
  3. 原因:Git 怕云端拉下来的代码,把你本地刚写的、还没保存的心血直接覆盖抹除。

  4. 写完直接敲 add -> commit -> push(霸王硬上弓)

  5. 结果git push 会被无情拒绝(终端报错 [rejected])。
  6. 原因:Git 发现云端有你本地没有的历史记录。为了保护云端的旧笔记不被你当前的状态强行覆盖,它会强制你必须先拉取(pull)合并。

最佳补救流程(写完才想起没 pull)

如果已经洋洋洒洒写了一大堆内容,突然发现自己开工前忘记 git pull 了,请严格按照以下顺序"先存后合"

# 1. 先把本地刚写的笔记"落袋为安",存入本地 Git 仓库
git add .
git commit -m "暂存本地新写的笔记,准备合并代码"

# 2. 拉取云端代码,让 Git 自动进行合并(Merge)
git pull  

# 3. 合并成功(终端没有报 Conflict 冲突)后,正常推送到云端
git push

💡 进阶提示:关于代码冲突 (Merge Conflict) 在执行第 2 步 git pull 时,如果你新电脑和旧电脑恰好修改了同一篇笔记的同一行字,Git 会不知道听谁的,从而提示"冲突"。 此时只需要在 VS Code 里打开那个标红的文件,点击编辑器上方提示的"保留双方更改"或"保留当前更改",然后重新执行一次 addcommit 即可解决。


Git 的核心命令按照日常开发的工作流分为了五个阶段,梳理了最常用的命令。

在此之前,理解 Git 的核心架构非常重要。Git 的工作区分为四个区域:

  • 工作区 (Working Directory): 你当前真正在写代码的文件夹。
  • 暂存区 (Staging Area): 类似于一个"购物车",把你想要保存的修改先放进去。
  • 本地仓库 (Local Repository): 你的个人"时光机",代码提交后会在这里生成一个永久记录。
  • 远程仓库 (Remote Repository): 托管在云端(如 GitHub, GitLab, Gitee)的仓库,用于备份和团队共享。

1. 初始设置与获取仓库 (Setup & Init)

这是你第一次使用 Git 或者开启一个新项目时需要做的。

功能说明 具体命令 通俗解释
配置用户名 git config --global user.name "Your Name" 告诉 Git 你是谁。每次提交代码都会带上这个名字。
配置邮箱 git config --global user.email "you@example.com" 告诉 Git 你的联系方式。
初始化本地仓库 git init 在当前文件夹新建一个隐藏的 .git 文件夹,让这个普通文件夹变成 Git 仓库。
克隆远程仓库 git clone https://github.com/.../repo.git 把别人(或自己)在云端的代码完整地下载到本地。

2. 日常"单机"工作流:修改与保存 (Daily Workflow)

这是你每天写代码用得最多的一组命令,对应上面提到的"工作区 暂存区 本地仓库"。

功能说明 具体命令 通俗解释
查看当前状态 git status 极度常用! 随时输入这个命令,看看哪些文件被修改了,哪些在暂存区。
添加到暂存区 git add 文件名git add . 把单个文件或当前目录下的所有修改(. 代表所有)放入"购物车"。
提交到本地仓库 git commit -m "修复了xxBug" 结账!把"购物车"里的修改永久保存下来。-m 后面必须跟着一句简短的说明。
查看提交历史 git log 查看过去的提交记录(谁在什么时间提交了什么说明)。输入 q 退出查看。

3. 分支管理:平行宇宙 (Branching)

分支是 Git 的杀手锏。当你想开发一个新功能或者修复一个 Bug 时,最好新建一个分支,这样无论你怎么折腾,都不会影响主干(通常是 mainmaster 分支)上正在运行的代码。

功能说明 具体命令 通俗解释
查看本地分支 git branch 列出所有分支,当前所在的分支前面会有一个 *
创建新分支 git branch 分支名 创建一个平行宇宙,但你的人还留在当前宇宙。
切换分支 git checkout 分支名git switch 分支名 穿越到另一个平行宇宙去写代码。(推荐用较新的 switch 命令,语意更清晰)。
创建并切换 git checkout -b 分支名git switch -c 分支名 极度常用! 上面两个步骤的二合一。
合并分支 git merge 目标分支名 把目标分支的代码合并到你当前所在的分支。

4. 远程同步:与团队协作 (Remote Syncing)

当你在本地仓库折腾完之后,需要把代码推送到云端(如 GitHub)备份,或者拉取同事的代码。

功能说明 具体命令 通俗解释
查看远程仓库 git remote -v 看看你当前连接的是哪个云端地址。
推送到云端 git push origin 分支名 把你本地某个分支的 commit 推送到云端(origin 通常是云端仓库的默认代号)。
拉取云端更新 git pull origin 分支名 极度常用! 下载云端最新的代码,并自动合并到你当前的代码中。每天动手敲代码前最好先 pull 一下。

5. 救急与后悔药 (Undoing)

难免会有提交错代码或者把工作区改得乱七八糟的时候。

功能说明 具体命令 通俗解释
撤销工作区修改 git restore 文件名git checkout -- 文件名 还没 add 进暂存区,发现改废了,一键让文件回到上一次 commit 的状态。
暂存临时工作 git stash 代码写了一半,突然要切分支修 Bug,又不想 commit。用这个命令把当前修改"藏"起来。
恢复临时工作 git stash pop Bug 修完了切回来,把刚才"藏"起来的代码恢复到工作区继续写。
撤销某次提交 git reset --hard 版本号 危险操作! 彻底时光倒流到某个版本,这之后的修改会全部丢失。