Git 常用命令详解(含详细示例)
本文整理了 Git 日常使用中最常用的命令,适合初学者和日常查阅,如有错误,敬请指正,谢谢!
☁️ Git 使用流程入门(从 pull 和 push 开始)
1️⃣ 克隆远程仓库(首次使用)
git clone https://github.com/user/repo.git
cd repo
- 说明:将远程仓库代码下载到本地并进入项目目录。
2️⃣ 日常更新远程仓库的代码(pull)
git branch # 查看当前所在的分支
git checkout main # 如果当前不在 main 分支,切换到主分支
git pull origin main # 拉取远程主分支的最新代码
- 说明:每次开始开发前,建议先拉取最新远程更新,防止提交冲突。
3️⃣ 修改文件并保存
# 例如修改了 hello.py 文件
# 修改后保存文件
4️⃣ 添加到暂存区并提交
# 添加单个文件到暂存区
git add hello.py
# 或添加所有已修改文件
git add .
# 提交保存修改,并添加提交信息
git commit -m "修复 hello.py 中的语法错误"
5️⃣ 推送到远程仓库
git push origin main
- 说明:将提交内容同步到远程仓库。
📁 初始化本地仓库
mkdir my-project
cd my-project
git init
- 说明:在
my-project
目录中初始化一个空的 Git 仓库。
🔍 查看状态
git status
- 说明:查看工作目录与暂存区的文件状态。
➕ 添加文件到暂存区
git add <文件名> # 添加单个文件
git add . # 添加所有更改过的文件
✅ 提交更改
git commit -m "提交说明"
- 说明:将暂存区中的内容提交到本地版本库。
🔁 查看提交记录
git log # 全量日志
git log --oneline # 简洁格式
🔄 查看修改内容
git diff # 工作目录与暂存区差异
git diff --cached # 暂存区与上次提交差异
🗑️ 撤销修改
git checkout -- <文件名>
- 说明:放弃当前工作目录对指定文件的修改(不可恢复)。
🔙 回退到某次提交
git log --oneline # 找到想回退的提交ID
git reset --hard a1b2c3d # 回退到指定提交(不可恢复)
说明:强制回退 HEAD 和工作目录到指定提交。
注意:此操作会清除之后的提交,谨慎使用。
🌱 创建和查看分支
git branch # 查看所有本地分支
git branch dev # 创建名为 dev 的新分支
git checkout dev # 切换到 dev 分支
git switch dev # 更推荐的新语法
🔀 合并分支
git checkout main # 当前所在分支是 main
git pull origin main # 确保 main 是最新的
git merge dev # 将 dev 分支合并进 main
说明:
- 合并之前一定要确保处于目标分支(如 main)。
- 合并来源是指定的分支(如 dev)。
- 合并后若有冲突需手动解决再提交。
🧹 删除分支
git branch -d dev # 删除本地分支
git push origin --delete dev # 删除远程分支
🔗 连接远程仓库和修改远程地址
查看当前远程仓库地址
git remote -v
- 说明:查看当前仓库的远程地址和 fetch/push 配置。
添加远程仓库(首次)
git remote add origin https://github.com/user/repo.git
修改远程仓库地址
git remote set-url origin https://github.com/newuser/newrepo.git
- 说明:若原远程地址变更(如换了 GitHub 账户或项目迁移),可用此命令更新。
git remote add origin https://github.com/user/repo.git
- 说明:添加名为
origin
的远程仓库地址。
☁️ 推送到远程仓库(首次)
git push -u origin main
- 说明:第一次推送时使用
-u
绑定远程分支,以后只需执行git push
即可。
❗ 如果远程已有提交怎么办?
git pull origin main --rebase # 拉取并与本地代码衔接
# 或强推(慎用)
git push -f origin main
☁️ 拉取远程仓库更新
git pull origin main
- 说明:获取远程更新并自动合并。
🔄 覆盖本地代码(慎用)
git fetch --all
git reset --hard origin/main
- 说明:强制使用远程代码覆盖本地所有更改。
🧰 常用组合操作流程(工作流建议)
# Step 1: 新建分支并切换
git checkout -b feature-x # 创建并切换到新分支 feature-x
# Step 2: 开发代码并提交
git add .
git commit -m "完成了 feature-x 功能"
# Step 3: 推送分支
git push -u origin feature-x # 将分支推送到远程
# Step 4: 合并到主分支
git checkout main
git pull origin main # 保证 main 是最新的
git merge feature-x # 合并 feature-x 分支
git push origin main # 推送合并后的主分支
🧳 暂存工作进度(stash)
git stash # 暂存当前未提交的更改
git stash list # 查看所有 stash 项
git stash pop # 恢复最近一次 stash 的内容并删除该 stash
- 说明:适用于临时切换分支或保存当前工作进度。
🏷️ 打标签(tag)
git tag v1.0 # 创建标签 v1.0(默认基于当前提交)
git tag # 查看所有标签
git push origin v1.0 # 推送单个标签到远程
git push origin --tags # 推送所有标签
- 说明:标签用于标记某次关键提交,常用于版本管理。
如需继续补充其他 Git 场景,可放评论区进行补充。