Git 最常用操作和原理
2026/6/7 16:24:16 网站建设 项目流程

文章目录

  • Git 最常用操作(小白版)
    • 1. 拿代码(第一次用)
    • 2. 同步最新代码(每天必用)
    • 3. 查看当前状态
    • 4. 把修改的文件加入提交(暂存)
    • 5. 提交代码(本地保存)
    • 6. 推送到远程仓库(让别人能看到)
  • 分支操作(团队开发最核心)
    • 7. 查看所有分支
    • 8. 新建分支
    • 9. 切换分支
    • 10. 新建并直接切换过去
    • 11. 把别的分支合并到当前分支
  • 撤销/回退(经常用到)
    • 12. 放弃某个文件的修改(还原)
    • 13. 撤销 add
    • 14. 回退到上一个版本
  • 查看日志
    • 15. 看提交历史
  • 第一次提交
    • 一、报错到底啥意思?
    • 二、怎么解决?(2 种情况)
      • 情况 1:你是第一次用这个文件夹
      • 情况 2:这个文件夹本来就是从 GitHub/GitLab 下载的项目
    • 三、最简单的解决办法(直接复制运行)
    • 四、一句话记住
  • 怎么设置自己要提交的仓库
    • 0. 先在网页上建好空仓库
    • 1. 查看当前远程(有没有已经绑定的仓库)
    • 2. 如果已经有远程,先删掉旧的(可选)
    • 3. 添加你自己的远程仓库(关键)
    • 4. 确认设置成功
    • 5. 提交并推送(把代码发上去)
    • 常见问题
  • README 和 License
    • 一、README 是什么?
    • 二、License 又是根据什么来的?
    • 三、补充一个关键细节
    • 举个例子
    • 额外小知识
  • 拉取更新文件
    • 一、最简单:直接拉取(日常 90% 场景)
    • 二、先看再合并(更安全,推荐新手)
    • 三、保持提交历史干净(多人协作)
    • 四、常见问题处理
      • 1. 本地有未提交的修改,拉取报错
      • 2. 想强制覆盖本地(谨慎!会丢本地改动)
    • 一句话总结
  • 最常用的一套完整流程(你每天都会这么写)
  • 一句话总结所有操作

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

Git 最常用操作(小白版)

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

1. 拿代码(第一次用)

gitclone 仓库地址

把远程代码下载到本地。

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

gitpull

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

3. 查看当前状态

gitstatus

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

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

gitadd文件名

或一次性加所有:

gitadd.

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

gitcommit-m"写你改了啥"

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

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

gitpush

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

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

7. 查看所有分支

gitbranch

8. 新建分支

gitbranch 分支名

9. 切换分支

gitcheckout 分支名

或新版命令:

gitswitch 分支名

10. 新建并直接切换过去

gitcheckout-b新分支名

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

gitmerge 要合并进来的分支

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

撤销/回退(经常用到)

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

gitcheckout -- 文件名

13. 撤销 add

gitreset HEAD 文件名

14. 回退到上一个版本

gitreset--hardHEAD^

查看日志

15. 看提交历史

gitlog

第一次提交

报错

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

gitinit

然后再执行:

gitadd.

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

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

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

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

ls-a

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

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

gitinitgitadd.

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. 查看当前远程(有没有已经绑定的仓库)

gitremote-v
  • 有输出:说明已经关联了远程仓库
  • 提示“not found”:还没关联

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

gitremotermorigin

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

gitremoteaddorigin 你的仓库地址

示例(换成你自己的):

gitremoteaddorigin https://github.com/wanxiangan/handpose-virtualview.git
  • origin是远程仓库的默认别名,固定用这个就行

4. 确认设置成功

gitremote-v

输出类似:

origin https://github.com/xxx/xxx.git (fetch) origin https://github.com/xxx/xxx.git (push)

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

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

你已经git add .了,直接:

gitcommit-m"初始化:handpose 项目"gitbranch-Mmaingitpush-uorigin 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% 场景)

# 先切到你要更新的分支(比如 main)gitcheckout main# 拉取并自动合并远程最新改动gitpull
  • 等价于:git fetch + git merge
  • 成功提示:Fast-forwardAlready up to date
  • 有冲突:会提示merge conflicts,需要手动解决后再git add+git commit

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

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

# 1. 只下载远程更新,不合并到本地gitfetch origin# 2. 对比本地和远程差异gitdifforigin/main# 3. 确认没问题再合并gitmerge origin/main
  • fetch:只更新本地的“远程镜像”,不改动你的工作区
  • 安全:看清楚再合并,不容易出冲突

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

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

gitpull--rebaseorigin main
  • 优点:没有多余合并提交,历史清晰
  • 缺点:有冲突时要逐个解决,适合熟练后用

四、常见问题处理

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

# 暂存本地修改(临时保存)gitstash# 拉取gitpull# 恢复本地修改gitstash pop

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

gitreset--hardorigin/main
  • ⚠️ 本地所有未推送的提交都会被删掉,只保留远程版本

一句话总结

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

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

gitpull# 同步最新gitadd.# 加所有修改gitcommit-m"修复xxbug"# 本地提交gitpush# 推到远程

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

一句话总结所有操作

  • clone:下载代码
  • pull:更新代码
  • add/commit/push:提交代码
  • branch/switch:开分支、切分支
  • merge:合并代码
  • PR:提交合并申请(团队审核用)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询