Git 的常用命令和基本用法

以下是 Git 的常用命令和基本用法,按使用场景分类,适合日常开发。

一、仓库初始化与克隆

命令说明
git init在当前目录初始化一个新的 Git 仓库
git clone <url>克隆远程仓库到本地
git clone --depth 1 <url>浅克隆,只下载最新一次提交(节省时间)

二、查看状态与历史

命令说明
git status查看工作区和暂存区的状态(最常用)
git log查看提交历史
git log --oneline简洁版提交历史
git log --graph --oneline --all图形化显示所有分支历史
git diff查看工作区与暂存区的差异
git diff --staged查看暂存区与上次提交的差异
git show <commit-hash>查看某次提交的详细内容

三、日常修改与提交

命令说明
git add <file>将文件添加到暂存区
git add .添加所有修改(包括新增、修改、删除)
git add -A同上,更显式
git commit -m "message"提交暂存区内容
git commit -am "message"跳过 add,直接提交已跟踪文件的修改
git commit --amend修改上一次提交(补充文件或修改说明)
git restore <file>丢弃工作区的修改(恢复成暂存区或 HEAD 版本)
git rm <file>删除文件并记录到暂存区

四、分支操作

命令说明
git branch查看本地分支(当前分支带 *)
git branch -r查看远程分支
git branch -a查看所有分支(本地+远程)
git branch <name>创建新分支
git branch -d <name>删除分支
git checkout <branch>切换分支
git switch <branch>更安全的切换分支(Git 2.23+)
git checkout -b <name>创建并切换到新分支
git merge <branch>将指定分支合并到当前分支
git rebase <branch>变基操作,使提交历史更线性

五、远程仓库操作

命令说明
git remote -v查看远程仓库地址
git remote add origin <url>添加远程仓库
git push origin <branch>推送本地分支到远程
git push -u origin <branch>推送并建立上游关联(之后直接 git push
git push --force强制推送(⚠️ 谨慎使用)
git pull拉取远程并合并(= fetch + merge)
git fetch只拉取远程更新,不自动合并
git clone 后的默认远程名是 origin

六、撤销与恢复

命令说明
git reset HEAD <file>将文件从暂存区撤出(保留工作区修改)
git reset --soft HEAD~1撤销最近一次提交,但保留修改在暂存区
git reset --mixed HEAD~1撤销提交并保留修改在工作区(默认)
git reset --hard HEAD~1⚠️ 彻底丢弃最近一次提交和所有修改(危险)
git revert <commit>用一次新提交反向撤销某次历史提交(安全)
git stash临时保存当前工作区的修改
git stash pop恢复最近一次 stash 并删除记录
git stash list查看所有 stash

七、标签(版本发布)

命令说明
git tag查看所有标签
git tag <name>创建轻量标签
git tag -a v1.0 -m "message"创建带注释的标签
git push origin <tag>推送单个标签
git push --tags推送所有标签

八、典型工作流示例

场景1:开始一个新功能

bash

git checkout main
git pull                     # 更新主分支
git checkout -b feature-xxx  # 创建并切换到功能分支
# ... 修改代码 ...
git add .
git commit -m "feat: xxx"
git push -u origin feature-xxx

场景2:同步远程最新代码

bash

git pull origin main         # 拉取并合并
# 或者更安全的做法:
git fetch origin
git diff origin/main         # 先看差异
git merge origin/main        # 确认后再合并

场景3:撤销不想提交的修改

bash

git checkout -- <file>       # 丢弃工作区修改(旧语法)
git restore <file>           # 新语法(Git 2.23+)

场景4:合并别人修改时解决冲突

bash

git pull origin main
# 出现冲突 → 手动编辑冲突文件 → 删除 <<<<< ===== >>>> 标记
git add .
git commit -m "merge conflict resolved"

九、常用查看历史命令

bash

git log --oneline --graph --all --decorate   # 最推荐的可视化日志
git reflog                                    # 查看所有 HEAD 移动记录(可用于恢复丢失的提交)
git status -sb                                # 简洁状态 + 分支信息

十、别名设置(提升效率)

bash

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"
# 之后就可以用 git st、git co、git lg 等

记住三个核心区域

text

工作区 (Working Directory)
    ↓ git add
暂存区 (Staging Area)
    ↓ git commit
本地仓库 (Local Repository)
    ↓ git push
远程仓库 (Remote Repository)

最常用的三个命令:git statusgit addgit commit — 掌握它们就覆盖了 80% 的日常场景。

.gitignore用法

关键点说明
.gitignore 的生效时机只在文件从未被追踪时生效
已被追踪的文件.gitignore 对它无效
删除已被追踪的文件Git 会记录删除操作
push 后的结果远程该文件也会被删除

文件一旦被 Git 追踪过(commit 过),.gitignore 就管不了它了。本地删除并提交后,push 到远程会同步删除远程的该文件。

如果你想让远程文件保留但本地删除,需要执行 git rm --cached(从 Git 中移除追踪)而不是直接 rm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值