Git 最常用操作和原理

文章目录

  • [Git 最常用操作(小白版)](#Git 最常用操作(小白版))
    • [1. 拿代码(第一次用)](#1. 拿代码(第一次用))
    • [2. 同步最新代码(每天必用)](#2. 同步最新代码(每天必用))
    • [3. 查看当前状态](#3. 查看当前状态)
    • [4. 把修改的文件加入提交(暂存)](#4. 把修改的文件加入提交(暂存))
    • [5. 提交代码(本地保存)](#5. 提交代码(本地保存))
    • [6. 推送到远程仓库(让别人能看到)](#6. 推送到远程仓库(让别人能看到))
  • 分支操作(团队开发最核心)
    • [7. 查看所有分支](#7. 查看所有分支)
    • [8. 新建分支](#8. 新建分支)
    • [9. 切换分支](#9. 切换分支)
    • [10. 新建并直接切换过去](#10. 新建并直接切换过去)
    • [11. 把别的分支合并到当前分支](#11. 把别的分支合并到当前分支)
  • 撤销/回退(经常用到)
    • [12. 放弃某个文件的修改(还原)](#12. 放弃某个文件的修改(还原))
    • [13. 撤销 add](#13. 撤销 add)
    • [14. 回退到上一个版本](#14. 回退到上一个版本)
  • 查看日志
    • [15. 看提交历史](#15. 看提交历史)
  • 第一次提交
  • 怎么设置自己要提交的仓库
    • [0. 先在网页上建好空仓库](#0. 先在网页上建好空仓库)
    • [1. 查看当前远程(有没有已经绑定的仓库)](#1. 查看当前远程(有没有已经绑定的仓库))
    • [2. 如果已经有远程,先删掉旧的(可选)](#2. 如果已经有远程,先删掉旧的(可选))
    • [3. 添加你自己的远程仓库(关键)](#3. 添加你自己的远程仓库(关键))
    • [4. 确认设置成功](#4. 确认设置成功)
    • [5. 提交并推送(把代码发上去)](#5. 提交并推送(把代码发上去))
    • 常见问题
  • [README 和 License](#README 和 License)
  • 拉取更新文件
  • 最常用的一套完整流程(你每天都会这么写)
  • 一句话总结所有操作

虽然Codex可以直接帮进行git操作,但是git的原理大家还是需要知道的。

Git 最常用操作(小白版)

开发流程顺序排好,从克隆到提交到切换分支,全是日常用的。

1. 拿代码(第一次用)

bash 复制代码
git clone 仓库地址

把远程代码下载到本地。

2. 同步最新代码(每天必用)

bash 复制代码
git pull

把别人最新改的代码拉到你本地。

3. 查看当前状态

bash 复制代码
git status

看你改了哪些文件、哪些没提交。

4. 把修改的文件加入提交(暂存)

bash 复制代码
git add 文件名

或一次性加所有:

bash 复制代码
git add .

5. 提交代码(本地保存)

bash 复制代码
git commit -m "写你改了啥"

只是保存在你电脑上,还没发到服务器。

6. 推送到远程仓库(让别人能看到)

bash 复制代码
git push

发到 GitHub/GitLab 上,之后才能开 PR

分支操作(团队开发最核心)

7. 查看所有分支

bash 复制代码
git branch

8. 新建分支

bash 复制代码
git branch 分支名

9. 切换分支

bash 复制代码
git checkout 分支名

或新版命令:

bash 复制代码
git switch 分支名

10. 新建并直接切换过去

bash 复制代码
git checkout -b 新分支名

11. 把别的分支合并到当前分支

bash 复制代码
git merge 要合并进来的分支

(PR 本质就是网页版 merge,更安全)

撤销/回退(经常用到)

12. 放弃某个文件的修改(还原)

bash 复制代码
git checkout -- 文件名

13. 撤销 add

bash 复制代码
git reset HEAD 文件名

14. 回退到上一个版本

bash 复制代码
git reset --hard HEAD^

查看日志

15. 看提交历史

bash 复制代码
git log

第一次提交

报错

fatal: not a git repository

一、报错到底啥意思?

复制代码
fatal: not a git repository

翻译:

致命错误:这不是一个 git 仓库(找不到 .git 文件夹)

你现在的路径:

复制代码
/e/0WHXY/keyan/versionFinally/handpose-virtualview

这个文件夹里没有初始化 Git ,所以你不能用 git addgit commit 这些命令。

二、怎么解决?(2 种情况)

情况 1:你是第一次用这个文件夹

你需要先初始化 Git

bash 复制代码
git init

然后再执行:

bash 复制代码
git add .

就不会报错了。(这些操作直接在powershell操作即可)

情况 2:这个文件夹本来就是从 GitHub/GitLab 下载的项目

那说明你进错文件夹了

你要进入项目根目录 (里面有 .git 文件夹的那一层)。

你可以先看一下当前目录有没有 .git

bash 复制代码
ls -a

如果看不到 .git,说明你进错文件夹了。

三、最简单的解决办法(直接复制运行)

bash 复制代码
git init
git add .

99% 的情况这样就好了。

四、一句话记住

没有 git init / 没有 clone 的文件夹,不能用 git 命令!

怎么设置自己要提交的仓库

0. 先在网页上建好空仓库

去 GitHub/Gitee 等:

  • 新建仓库(New repository)
  • 仓库名和你的项目名一致
  • 不要勾选 "Initialize with README"(否则后面容易冲突)
  • 创建后复制仓库地址(HTTPS 或 SSH)
    • HTTPS:https://github.com/你的名字/你的仓库.git
    • SSH:git@github.com:你的名字/你的仓库.git

1. 查看当前远程(有没有已经绑定的仓库)

bash 复制代码
git remote -v
  • 有输出:说明已经关联了远程仓库
  • 提示"not found":还没关联

2. 如果已经有远程,先删掉旧的(可选)

bash 复制代码
git remote rm origin

3. 添加你自己的远程仓库(关键)

bash 复制代码
git remote add origin 你的仓库地址

示例(换成你自己的):

bash 复制代码
git remote add origin https://github.com/wanxiangan/handpose-virtualview.git
  • origin 是远程仓库的默认别名,固定用这个就行

4. 确认设置成功

bash 复制代码
git remote -v

输出类似:

复制代码
origin  https://github.com/xxx/xxx.git (fetch)
origin  https://github.com/xxx/xxx.git (push)

说明拉取、推送都指向你自己的仓库

5. 提交并推送(把代码发上去)

你已经 git add . 了,直接:

bash 复制代码
git commit -m "初始化:handpose 项目"
git branch -M main
git push -u origin main
  • 第一次 push 用 -u,以后直接 git push 即可
  1. 第一个:git commit -m "xxx"
    这里的 -m = message
    意思:本次提交的说明文字
  2. 第二个:git branch -M main
    这里的 -M = Move(重命名)+ 强制覆盖
    意思:把当前分支改名叫 main
  3. -u 是什么?(最关键)
    -u = --set-upstream
    作用:把本地 main 分支 和 云端 main 分支绑定在一起!

常见问题

  • 报错"fatal: remote origin already exists":先执行 git remote rm origin
  • 每次 push 要输密码:推荐用 SSH 地址,配置一次免密

README 和 License

一、README 是什么?

README 就是完全根据你仓库里的 README.md 文件生成的!

  • GitHub 会自动读取仓库根目录下的 README.md
  • 把它渲染成漂亮的 Markdown 页面,展示在仓库首页
  • 文件名大小写不敏感,比如 Readme.md 也能识别,但标准写法是全小写 README.md

二、License 又是根据什么来的?

License 也是根据你仓库根目录下的 LICENSE 文件生成的!

和 README 逻辑几乎一样:

  • GitHub 会自动识别仓库根目录下的 LICENSE 文件(也可以是 LICENSE.txt 等)
  • 把它渲染成专门的 License 标签页,显示在 README 旁边
  • 同时会自动解析文件内容,告诉你这是什么类型的开源协议(比如 MIT、Apache 2.0 等)

你截图里的内容,就是这个 LICENSE 文件的原文。

三、补充一个关键细节

  • README 是你写的项目说明:介绍项目怎么用、怎么安装、怎么运行
  • LICENSE 是法律协议:规定别人能不能用、能不能改、能不能商用你的代码

它们俩都是纯文本文件 ,你修改本地文件再 git push,GitHub 上的内容就会同步更新。

举个例子

如果你在本地根目录创建了:

复制代码
你的项目/
├── README.md    → 仓库首页显示的内容
└── LICENSE      → 旁边 License 标签页的内容

推送到 GitHub 后,就会自动生成你截图里的两个标签页。

额外小知识

如果新建仓库时,你勾选了「Add a README file」或「Choose a license」,GitHub 会自动帮你生成这两个文件,推送到仓库里。

拉取更新文件

一、最简单:直接拉取(日常 90% 场景)

bash 复制代码
# 先切到你要更新的分支(比如 main)
git checkout main

# 拉取并自动合并远程最新改动
git pull
  • 等价于:git fetch + git merge
  • 成功提示:Fast-forwardAlready up to date
  • 有冲突:会提示 merge conflicts,需要手动解决后再 git add + git commit

二、先看再合并(更安全,推荐新手)

想先看看远程改了什么,再决定要不要合并:

bash 复制代码
# 1. 只下载远程更新,不合并到本地
git fetch origin

# 2. 对比本地和远程差异
git diff origin/main

# 3. 确认没问题再合并
git merge origin/main
  • fetch:只更新本地的"远程镜像",不改动你的工作区
  • 安全:看清楚再合并,不容易出冲突

三、保持提交历史干净(多人协作)

默认 pull 会产生一个"合并提交",用 --rebase 可以把你的提交"移到"远程最新之后,历史是一条直线:

bash 复制代码
git pull --rebase origin main
  • 优点:没有多余合并提交,历史清晰
  • 缺点:有冲突时要逐个解决,适合熟练后用

四、常见问题处理

1. 本地有未提交的修改,拉取报错

bash 复制代码
# 暂存本地修改(临时保存)
git stash

# 拉取
git pull

# 恢复本地修改
git stash pop

2. 想强制覆盖本地(谨慎!会丢本地改动)

bash 复制代码
git reset --hard origin/main
  • ⚠️ 本地所有未推送的提交都会被删掉,只保留远程版本

一句话总结

  • 直接拉取git pull(最快)
  • 安全查看git fetchgit diffgit merge
  • 干净历史git pull --rebase

最常用的一套完整流程(你每天都会这么写)

bash 复制代码
git pull          # 同步最新
git add .         # 加所有修改
git commit -m "修复xxbug"  # 本地提交
git push          # 推到远程

然后去网页 开 PR → 审核 → 合并。

一句话总结所有操作

  • clone:下载代码
  • pull:更新代码
  • add/commit/push:提交代码
  • branch/switch:开分支、切分支
  • merge:合并代码
  • PR:提交合并申请(团队审核用)
相关推荐
Urbano3 小时前
卫衣生产工艺科普与智能自动化设备应用解析
大数据·运维·人工智能
Geeys3 小时前
拼多多投产比(ROI)越高好还是越低好?深度拆解合理阈值与高效提效工具
大数据
QC777LX3 小时前
运营岗位怎么借AI提升内容、活动和复盘效率?
大数据·人工智能
智塑未来4 小时前
AI Agent 搜索工具选型参考:聚焦 AI Agent 搜索的垂直专用基础设施
大数据·人工智能
Urbano7 小时前
稳产提质、快返增效:慧拿智能模板机重塑服装厂精细化盈利模式
大数据·人工智能
YueLin1117 小时前
私域直播系统的下半场,是社区零售的分水岭
大数据·零售
哥本哈士奇7 小时前
医疗器械行业 Salesforce Territory 完整落地实例
大数据·人工智能
samLi06208 小时前
【无标题】
大数据
zandy10118 小时前
企业级BI平台选型指南:评估框架与核心能力矩阵
大数据·人工智能·矩阵
远铂8 小时前
BuildAdmin:GEO优化与AI内容营销一体化解决方案
大数据·人工智能·geo·buildadmin