Git 基本命令全解析:从入门到精通
Git 作为目前最流行的分布式版本控制系统,其命令是开发者日常协作和版本管理的基础。本文将系统梳理 Git 的核心命令,涵盖仓库初始化、配置管理、版本控制、分支操作、标签管理及远程协作等场景,帮助你快速掌握 Git 的使用技巧。
仓库初始化与配置
初始化本地仓库
执行后,目录下会生成 .git
文件夹,存储 Git 版本控制的所有元数据(如分支、提交记录、配置等)。
配置用户信息
Git 通过用户信息区分不同开发者的提交,支持仓库级别和全局级别配置:
1 2 3 4 5 6 7 8 9 10 11
| git config user.name "你的用户名" git config user.email "你的邮箱"
git config --global user.name "你的用户名" git config --global user.email "你的邮箱"
git config --list git config user.name
|
优先级:仓库级别配置 > 全局级别配置。
工作区与暂存区操作
查看文件状态
- 未跟踪(Untracked):新文件,Git 未记录。
- 已修改(Modified):已跟踪文件被修改但未暂存。
- 已暂存(Staged):已添加到暂存区,等待提交到本地库。
将文件添加到暂存区
1 2 3 4 5 6 7 8
| git add filename.txt
git add .
git add -u
|
撤销工作区 / 暂存区修改
1 2 3 4 5 6 7
| git checkout -- filename.txt
git reset HEAD filename.txt
git rm --cached filename.txt
|
提交与版本管理
提交到本地库
1 2 3 4 5 6 7 8
| git commit
git commit -m "提交说明:如修复登录bug"
git commit -am "提交说明"
|
查看提交历史
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git log
git log --oneline
git reflog
git log --follow filename.txt
git log -p commit1_id..commit2_id
|
版本回滚与前进
通过移动 HEAD
指针实现版本切换,核心命令为 git reset
:
1 2 3 4 5 6 7 8
| git reset --hard 634938c
git reset --hard HEAD^
git reset --hard HEAD~3
|
git reset
三个参数的区别:
--hard
:重置本地库、暂存区和工作区(谨慎使用,会丢失未提交的修改)。
--mixed
(默认):重置本地库和暂存区,不影响工作区。
--soft
:仅重置本地库,不影响暂存区和工作区。
比较文件差异
1 2 3 4 5 6 7 8
| git diff filename.txt
git diff --cached filename.txt
git diff commit1_id commit2_id filename.txt
|
分支操作
分支是 Git 最强大的功能之一,用于并行开发(如功能开发、bug 修复),避免影响主分支。
查看分支
1 2 3 4
| git branch git branch -r git branch -a git branch -v
|
创建与切换分支
1 2 3 4 5 6 7 8
| git branch dev
git checkout dev
git checkout -b feature
|
合并分支
将指定分支的修改合并到当前分支:
1 2 3 4 5
| git checkout master
git merge dev
|
解决合并冲突:
当合并时出现冲突(同一文件同一位置被修改),Git 会标记冲突文件,需手动编辑冲突部分,然后执行:
1 2
| git add filename.txt git commit -m "解决合并冲突"
|
删除分支
1 2 3 4 5 6
| git branch -d dev git branch -D dev
git push origin --delete dev
|
其他常用分支命令
1 2 3 4 5 6 7 8
| git branch -m oldname newname
git log --graph --oneline --all
git cherry-pick commit_id
|
标签管理
标签(Tag)用于标记重要版本(如发布版本),便于后续回溯。
创建标签
1 2 3 4 5 6 7 8
| git tag v1.0
git tag v0.9 commit_id
git tag -a v1.0 -m "版本 1.0 发布" commit_id
|
查看标签
推送与删除标签
1 2 3 4 5 6 7 8 9 10 11
| git push origin v1.0
git push origin --tags
git tag -d v1.0
git push origin :refs/tags/v1.0
|
远程仓库协作
关联远程仓库
1 2 3 4 5 6
| git remote add origin https://github.com/yourname/yourrepo.git
git remote git remote -v
|
克隆远程仓库
1 2
| git clone https://github.com/yourname/yourrepo.git
|
拉取远程代码
1 2 3 4 5 6
| git pull origin master
git fetch origin master git merge origin/master
|
推送本地代码到远程
1 2 3 4 5 6 7 8
| git push -u origin master
git push origin master
git push origin master --force
|
暂存工作区(git stash)
当需要临时切换分支但不想提交当前修改时,可使用 git stash
暂存工作区:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| git stash
git stash -u
git stash list
git stash pop
git stash apply stash@{1}
git stash drop stash@{1}
|
v1.3.10