Git 作为分布式版本控制系统,主要用于跟踪和管理代码变更,是现代软件开发的核心工具。下面为大家总结了从入门到精通的一些常用指令
一、初始化配置
1. 全局用户配置
git config --global user.name "Your Name" git config --global user.email "you@example.com"
作用:提交代码时标识作者身份,需在首次使用 Git 前配置
2. 初始化仓库
git init git init /path/to/project git init --bare
二、仓库与文件操作
克隆远程仓库
git clone https://github.com/user/repo.git # 克隆默认分支git clone -b dev https://github.com/user/repo.git # 克隆特定分支git clone --depth 1 https://github.com/user/repo.git # 浅克隆(仅最近1次提交)
文件状态管理
| 命令 | 作用 | 示例 |
| git add | 添加单个文件到暂存区 | git add index.html |
| git add . | 添加所有修改和新增文件(不包含删除) | git add . |
| git add -A | 添加所有变更(含新增、修改、删除) | git add -A |
| git add -p | 交互式选择部分修改内容暂存 | git add -p file.txt |
| git restore | 丢弃工作区修改(未暂存) | git restore config.yml |
| git restore --staged | 从暂存区移除文件(保留工作区修改) | git restore --staged error.log |
查看状态
git status # 详细状态(分支、修改文件列表)git status -s # 简洁模式(标记文件状态:M=修改,A=新增,??=未跟踪)
状态标记说明:M(修改未暂存)、A(已暂存)、D(已删除)、??(未跟踪)
三、提交与历史
提交与历史
git commit -m "Fix login bug" # 提交暂存区文件git commit -am "Update feature" # 跳过暂存,直接提交已跟踪文件的修改(不包含新增文件)
修改提交
git commit --amend # 修改上一次提交(可修正信息或追加文件)git commit --amend --no-edit # 追加文件到上一次提交且不修改信息
查看提交历史
git log # 完整提交历史git log --oneline # 简洁模式(单行显示)git log -p file.txt # 查看文件修改历史(含差异)git log --author="Alice" --since="2024-01-01" # 按作者和时间过滤
四、分支管理
| 命令 | 作用 |
|---|---|
git branch
|
查看本地分支 |
git branch dev
|
创建新分支 dev
|
git checkout dev
|
切换到分支 dev
|
git switch dev
|
(Git 2.23+)更安全的切换分支方式 |
git checkout -b feature
|
创建并切换到新分支 feature
|
git merge feature
|
将 feature 分支合并到当前分支
|
git branch -d feature
|
删除已合并的分支 |
git branch -D hotfix
|
强制删除未合并分支 |
git rebase main
|
将当前分支变基到 main 分支(优化提交历史)
|
五、远程协作
关联与推送
git remote add origin https://github.com/user/repo.git # 添加远程仓库git push -u origin main # 首次推送并设置上游分支(后续可简写为 `git push`)git push --force # 强制推送(覆盖远程历史,慎用!)
拉取与更新
git pull origin main # 拉取远程分支并合并(= git fetch + git merge)git fetch origin # 仅获取远程更新(不自动合并)git pull --rebase # 拉取并变基(避免多余合并提交)
标签管理
git tag v1.0.0 # 创建轻量标签git tag -a v1.0.0 -m "Release" # 创建附注标签git push origin --tags # 推送所有标签到远程
六、高级技巧
储藏临时修改
git stash # 临时保存工作区修改git stash list # 查看储藏列表git stash apply stash@{1} # 应用指定储藏git stash pop # 应用并删除最新储藏
重置与回退
git reset --soft HEAD~1 # 撤销上一次提交(保留修改到暂存区)git reset --hard HEAD~3 # 彻底回退3个提交(丢弃修改)
0