Git 是目前世界上最流行的分布式版本控制系统,而命令行界面(CLI)则是许多开发者首选的 Git 操作方式,尽管它可能对初学者显得有些复杂,但掌握 Git 命令行能够提供更高的效率和更强大的功能,尤其是在处理复杂项目或需要精细化操作时,本文将详细介绍 Git 命令行的常用命令、使用场景及注意事项,特别关注中文环境下的处理方式,帮助开发者更好地利用 Git 进行版本控制。

Git 命令行基础与环境配置
在使用 Git 命令行之前,首先需要确保 Git 已正确安装,在 Windows 系统中,可以通过 Git Bash 终端使用 Git 命令;在 Linux 或 macOS 中,系统自带的终端即可直接运行 Git 命令,首次使用 Git 时,需要配置用户信息,包括用户名和邮箱,这些信息会用于标识提交者的身份,配置命令如下:
git config --global user.name "你的名字" git config --global user.email "你的邮箱@example.com"
如果需要支持中文显示,可以在 Git 配置中设置 core.quotepath 为 false,避免中文字符被转义为 Unicode 编码:
git config --global core.quotepath false
还可以配置默认的文本编辑器(如 vim、nano 等)和差异比较工具(如 meld、diffmerge 等),以提升使用体验:
git config --global core.editor "vim" git config --global diff.tool meld
本地仓库操作
本地仓库是 Git 版本控制的核心,所有操作都始于对本地仓库的管理,初始化仓库时,使用 git init 命令会在当前目录创建一个 .git 文件夹,用于存储版本历史记录,在项目目录中运行:

git init
添加文件到暂存区是提交前的关键步骤。git add 命令用于将文件从工作区添加到暂存区,支持通配符批量添加,如 git add *.txt 会添加所有 .txt 文件,如果需要添加所有修改和新建的文件,可以使用 git add . 或 git add -A。
提交操作将暂存区的文件保存到本地仓库,生成一个新的版本快照。git commit 命令需要附带提交信息,用于描述本次修改的内容。
git commit -m "添加用户登录功能"
如果提交后需要修改信息,可以使用 git commit --amend,这会打开默认编辑器让用户修改提交信息,或通过 -m 参数直接修改:
git commit --amend -m "修正用户登录功能的提交信息"
版本历史与差异查看
查看版本历史是 Git 日常操作的重要组成部分。git log 命令可以显示从最近到最远的提交记录,支持多种参数定制输出格式。git log --oneline 以简洁的单行形式显示提交信息,而 git log --graph 则会以图形化方式展示分支合并历史,如果需要查看某次提交的详细修改,可以使用 git show 命令,后接提交哈希值或分支名:
git show abc123 # abc123 为提交哈希值的前几位
比较文件差异也是常见需求。git diff 命令用于查看工作区与暂存区或不同提交之间的差异。git diff 显示工作区中尚未暂存的修改,而 git diff --staged 则显示已暂存但未提交的修改,如果需要比较两个提交之间的差异,可以指定两个提交的哈希值:

git diff abc123 def456 # 比较 abc123 和 def456 两个提交的差异
分支管理
分支是 Git 实现并行开发的核心机制,允许开发者在不同功能或修复上独立工作,创建分支使用 git branch 命令,后接分支名:
git branch feature/new-login
切换分支需要使用 git checkout 或 git switch(Git 2.23+ 版本推荐)。
git checkout feature/new-login # 或 git switch feature/new-login
创建并切换到新分支的快捷方式是使用 -b 参数:
git checkout -b bugfix/login-error
合并分支时,使用 git merge 命令将指定分支的修改合并到当前分支,在 main 分支上运行 git merge feature/new-login 会将 feature/new-login 的修改合并到 main 分支,如果需要删除已合并的分支,可以使用 -d 参数:
git branch -d feature/new-login
对于未合并的分支,使用 -D 参数强制删除:
git branch -D abandoned-feature
远程仓库操作
远程仓库允许团队成员共享代码,GitHub、GitLab、Gitee 是常见的远程托管平台,添加远程仓库使用 git remote add 命令,
git remote add origin https://github.com/username/repository.git
推送本地分支到远程仓库使用 git push 命令,首次推送时需要使用 -u 参数建立上游分支关联:
git push -u origin main
后续推送可以直接使用:
git push origin main
从远程仓库拉取代码使用 git pull 命令,它会自动获取远程修改并合并到当前分支:
git pull origin main
如果需要查看远程仓库信息,可以使用 git remote -v 显示远程仓库的名称和 URL。
中文环境下的注意事项
在中文环境下使用 Git 命令行时,可能会遇到字符编码问题,如果终端或 Git 配置不当,中文字符可能会显示为乱码,解决方法包括:
- 确保 Git 配置中
core.quotepath设置为false,如前文所述。 - 在 Windows 中,使用 Git Bash 而非 CMD 或 PowerShell,以更好地支持 UTF-8 编码。
- 在 Linux 或 macOS 中,设置终端的字符编码为 UTF-8,通常可以通过环境变量
LANG或LC_ALL控制:export LANG=zh_CN.UTF-8
- 如果文件名包含中文,确保文件系统使用 UTF-8 编码,避免因编码不一致导致的文件名乱码。
常用 Git 命令速查表
| 命令分类 | 命令示例 | 功能说明 |
|---|---|---|
| 仓库初始化 | git init |
初始化本地仓库 |
| 用户配置 | git config --global user.name |
设置全局用户名 |
| 文件操作 | git add <file> |
添加文件到暂存区 |
| 提交操作 | git commit -m "信息" |
提交暂存区文件到本地仓库 |
| 版本历史 | git log --oneline |
查看简洁的提交历史 |
| 分支管理 | git branch <name> |
创建分支 |
| 分支切换 | git checkout <name> |
切换到指定分支 |
| 合并分支 | git merge <branch> |
合并指定分支到当前分支 |
| 远程仓库 | git push origin <branch> |
推送本地分支到远程仓库 |
| 拉取代码 | git pull origin <branch> |
从远程仓库拉取代码并合并 |
相关问答 FAQs
问题 1:如何解决 Git 中文显示乱码的问题?
解答:Git 中文乱码通常是由于字符编码设置不当导致的,可以通过以下步骤解决:
- 全局设置
core.quotepath为false,避免中文字符被转义:git config --global core.quotepath false
- 在 Windows 中使用 Git Bash 终端,确保其编码为 UTF-8;在 Linux 或 macOS 中,设置环境变量
LANG=zh_CN.UTF-8。 - 如果文件名乱码,检查文件系统编码是否为 UTF-8,避免混合使用不同编码格式。
问题 2:如何撤销已提交的代码?
解答:撤销已提交的代码根据场景不同有多种方法:
- 如果提交尚未推送到远程仓库,可以使用
git commit --amend修改最后一次提交的信息或内容,或使用git reset回退提交,回退到上一次提交并保留修改内容到工作区:git reset --soft HEAD~1
如果需要彻底删除提交(包括修改内容),使用
--hard参数:git reset --hard HEAD~1
- 如果提交已推送到远程仓库,需要使用
git revert创建一个新的提交来撤销修改,避免影响其他开发者:git revert <commit-hash>
然后推送撤销提交到远程仓库。
