Git简单的文件提交操作

1. 创建版本库(Repository)

版本库就是 Git 用来管理项目版本的文件夹,创建分为「本地初始化」和「克隆远程仓库」两种方式。

方式 1:本地初始化新仓库(最常用)

bash

运行

复制代码
# 1. 先创建并进入项目文件夹(示例:my_project)
mkdir my_project
cd my_project

# 2. 初始化 Git 仓库(关键命令)
git init
  • 执行 git init 后,文件夹内会生成一个隐藏的 .git 目录(可通过 ls -a 查看),这个目录是 Git 管理版本的核心,切勿手动修改 / 删除
  • 效果:当前文件夹被 Git 接管,可开始追踪文件变化。
方式 2:克隆远程仓库(比如 GitHub/Gitee 上的仓库)

bash

运行

复制代码
# 格式:git clone 远程仓库地址 [本地文件夹名(可选)]
git clone https://github.com/xxx/xxx.git  # 克隆到当前目录,文件夹名和仓库名一致
git clone https://github.com/xxx/xxx.git my_new_project  # 自定义本地文件夹名
  • 适用场景:想把远程已有的项目拉到本地开发。
2. 提交文件到版本库

提交是 Git 保存文件版本的核心操作,必须遵循「工作区 → 暂存区 → 版本库」的流程。

步骤 1:查看文件状态(可选但推荐)

bash

运行

复制代码
git status  # 查看所有文件的状态(未跟踪/已修改/已暂存)
git status -s  # 精简版输出,更简洁
  • 常见状态说明:
    • Untracked files:文件未被 Git 跟踪(新文件);
    • Changes not staged for commit:文件已修改但未加入暂存区;
    • Changes to be committed:文件已加入暂存区,等待提交。
步骤 2:将文件添加到暂存区

bash

运行

复制代码
# 添加指定文件
git add README.md  # 添加单个文件
git add src/  # 添加整个 src 文件夹
# 添加所有未跟踪/已修改的文件(推荐日常使用)
git add .  
# 撤销暂存区的文件(比如加错了)
git reset HEAD README.md  # 撤销单个文件
git reset HEAD .  # 撤销所有暂存区文件
步骤 3:将暂存区文件提交到版本库

bash

运行

复制代码
# 基础提交(必须写提交说明,否则报错)
git commit -m "初始化项目:添加README和基础配置"
# 快捷方式:跳过暂存区,直接提交已跟踪的修改文件(新文件需先 git add)
git commit -am "修改README:补充使用说明"
# 补充提交(修改上一次的提交说明,仅适用于未推送到远程的提交)
git commit --amend -m "修正:初始化项目,补充.gitignore"
  • 提交说明规范:简洁明了,说明本次修改的内容(比如「修复登录按钮样式 bug」「新增用户列表接口」)。
3. 版本回退(回到历史版本)

回退的核心是操作「提交版本号」或「分支指针」,先学会查看历史版本。

步骤 1:查看提交历史

bash

运行

复制代码
# 查看所有提交记录(包含版本号、作者、时间、提交说明)
git log
# 精简版(一行显示,更易读)
git log --pretty=oneline
# 显示最近N次提交
git log -3  # 最近3次
# 显示提交记录+文件修改内容
git log -p
  • 关键信息:每一行开头的长字符串是「版本号(commit id)」,比如 a1b2c3d4e5f67890...,回退时需要用到。
  • 特殊指针:HEAD 代表「当前版本」,HEAD^ 代表「上一个版本」,HEAD^^ 代表「上上个版本」,HEAD~100 代表「前 100 个版本」。
步骤 2:版本回退操作
场景 1:回退到历史版本(保留工作区修改)

bash

运行

复制代码
# 方式1:用 HEAD 指针回退(推荐简单场景)
git reset --soft HEAD^  # 回退到上一版本,暂存区和工作区不变(仅版本库回退)
git reset --mixed HEAD^  # 默认模式,回退版本库+暂存区,工作区不变(最常用)
git reset --hard HEAD^  # 强制回退:版本库+暂存区+工作区全部回到历史版本(谨慎使用,会丢失未提交的修改)

# 方式2:用版本号回退(精准回退到指定版本)
git reset --hard a1b2c3d  # 版本号不用写全,前几位即可(确保唯一)
  • 示例: bash

    运行

    复制代码
    git log --pretty=oneline  # 查到目标版本号是 8888888
    git reset --hard 8888888  # 回退到该版本
场景 2:回退后想恢复到最新版本(后悔了)

如果回退后想回到回退前的最新版本,先查「历史操作记录」:

bash

运行

复制代码
git reflog  # 查看所有 HEAD 的操作记录(包含回退前的版本号)
  • 示例: bash

    运行

    复制代码
    git reflog  # 查到最新版本号是 9999999
    git reset --hard 9999999  # 恢复到最新版本

总结

  1. 创建版本库:本地用 git init,远程克隆用 git clone,核心是生成 .git 目录接管文件;
  2. 提交文件:必须遵循「git add → git commit -m」流程,git status 是排查问题的关键;
  3. 版本回退:先通过 git log/git reflog 查版本号,再用 git reset --hard/--mixed 回退,--hard 会丢失未提交修改需谨慎。
步骤 1:配置 Git 全局用户名和邮箱(核心)

这是必须的操作,Git 需要用这些信息标识提交者,执行以下命令(替换成你自己的用户名和邮箱):

bash

运行

复制代码
# 配置全局用户名(比如你的昵称/英文名)
git config --global user.name "YourName"
# 配置全局邮箱(建议用你注册 GitHub/Gitee 的邮箱)
git config --global user.email "your_email@example.com"
  • 示例(可直接替换使用): bash

    运行

    复制代码
    git config --global user.name "wjt13292"
    git config --global user.email "13292@xxx.com"
步骤 2:验证配置是否生效

配置完成后,再次执行查看全局配置的命令,此时就能正常显示配置信息,不会报错:

bash

运行

复制代码
git config --global -l
  • 正常输出示例: plaintext

    复制代码
    user.name=wjt13292
    user.email=13292@xxx.com
步骤 3(可选):查看 / 修改局部配置(针对单个仓库)

如果想为当前 testGit 仓库配置单独的用户名 / 邮箱(覆盖全局配置),可去掉 --global 参数:

bash

运行

复制代码
# 配置当前仓库的局部信息
git config user.name "LocalName"
git config user.email "local_email@example.com"
# 查看当前仓库的所有配置(全局+局部)
git config -l
相关推荐
封奚泽优2 小时前
Deep-Live-Cam(调试和求助)
git·python·ffmpeg·pip·cuda
空空kkk3 小时前
Git版本控制——.gitignore文件
git
测试人社区—52723 小时前
破茧成蝶:DevOps流水线测试环节的效能跃迁之路
运维·前端·人工智能·git·测试工具·自动化·devops
码农阿豪4 小时前
用 Rust 构建 Git 提交历史可视化工具
git·elasticsearch·rust
梦想是红队的咸鱼4 小时前
git泄露(一篇文章就够了)
git·web安全
leijmdas4 小时前
git操作命令
大数据·git·elasticsearch
Sleepy MargulisItG4 小时前
Linux 基础开发工具详解(Yum, Vim, GCC, Make, GDB, Git)
linux·git·vim
skywalk81631 天前
为一个库设置多个远程更新站用于git push,比如gitcode github等
git·github·gitcode
雪碧聊技术1 天前
银河麒麟安装git
git