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:提交合并申请(团队审核用)
相关推荐
阿里云大数据AI技术1 小时前
Agentic Search + Memory:当企业研究遇上"会思考的搜索"
人工智能·elasticsearch
普通网友1 小时前
springboot之集成Elasticsearch
spring boot·后端·elasticsearch
Henry-SAP2 小时前
SAP(ERP) 独立需求PIR 从预测到MRP输入业务解析
大数据·人工智能
团象科技2 小时前
记录跨境独立站 海外VPS组合落地的一线实操动态与调研手记
大数据·人工智能
专注API从业者3 小时前
电商选品效率翻倍!基于 Open Claw + 淘宝商品 API 实现自动化监控选品(附完整可运行代码)
大数据·运维·数据结构·数据库·自动化
知行产研3 小时前
红二矿:深耕能源融合与智能重构 探索矿山低碳高效转型新路径
大数据·重构·能源
189228048615 小时前
NV086固态MT29F16T08EWLCHD8-TES:C
大数据·服务器·人工智能·科技·缓存
Morantkk5 小时前
26.6.7
大数据
weixin_397578028 小时前
智能工厂规划设计——总体视图、业务框架、应用架构、系统架构、技术架构
大数据