菜鸟科技网

Git Bash 常用命令有哪些?

Git Bash 是 Windows 系统下常用的命令行工具,它提供了类 Unix 的环境,方便开发者使用 Git 命令进行版本控制,以下将详细介绍 Git Bash 的常用命令,涵盖仓库管理、文件操作、分支管理、远程仓库交互等核心功能,并通过表格形式辅助说明,帮助开发者快速上手和高效使用。

Git Bash 常用命令有哪些?-图1
(图片来源网络,侵删)

仓库初始化与配置

在使用 Git 之前,首先需要配置用户信息,这些信息会记录在提交历史中,使用 git config 命令可以设置全局或局部的用户名和邮箱:

  • 全局配置:git config --global user.name "Your Name"git config --global user.email "your.email@example.com",配置信息会存储在用户主目录的 .gitconfig 文件中。
  • 局部配置:进入项目目录后,使用 git config user.name "Your Name"(不带 --global 参数)仅对当前仓库生效。

初始化仓库有两种方式:一是进入项目目录后执行 git init,会在当前目录创建一个 .git 文件夹,用于跟踪版本控制;二是通过 git clone <仓库地址> 克隆远程仓库到本地,该命令会自动下载整个仓库历史记录并创建工作目录。

文件状态与暂存区操作

Git 的核心工作区包括工作目录(Working Directory)、暂存区(Staging Area)和本地仓库(Local Repository),常用文件操作命令如下:

  • git status:查看工作目录和暂存区的状态,显示未跟踪、已修改、已暂存的文件信息。
  • git add <file>git add .:将文件添加到暂存区, 表示添加所有修改和未跟踪的文件。
  • git reset <file>:将暂存区的文件移回工作目录,即取消暂存。
  • git commit -m "提交信息":将暂存区的文件提交到本地仓库,-m 参数后跟提交说明。
  • git rm --cached <file>:停止跟踪文件但保留在工作目录中(用于从版本控制中移除文件)。

历史记录与版本回退

查看和操作提交历史是版本控制的核心功能:

Git Bash 常用命令有哪些?-图2
(图片来源网络,侵删)
  • git log:显示提交历史,包括提交哈希、作者、日期和提交信息,可加参数如 --oneline(简化显示)、--graph(分支图形化)、-n 5(显示最近5条记录)。
  • git show <commit_hash>:查看某次提交的详细修改内容。
  • git diff:比较工作目录与暂存区的差异(git diff --staged 比较暂存区与本地仓库)。
  • git reset --hard <commit_hash>:将 HEAD 指向指定提交,并重置工作目录和暂存区,会丢失后续提交(谨慎使用)。
  • git revert <commit_hash>:创建一个新提交来撤销指定提交的修改,保留历史记录。

分支管理

分支是 Git 实现并行开发的关键,常用命令包括:

  • git branch:列出本地分支,-r 查看远程分支,-a 查看所有分支。
  • git branch <branch_name>:创建新分支。
  • git checkout <branch_name>git switch <branch_name>(Git 2.23+ 推荐):切换分支,-b 参数可直接创建并切换分支(如 git checkout -b dev)。
  • git merge <branch_name>:将指定分支合并到当前分支,若存在冲突需手动解决后提交。
  • git branch -d <branch_name>:删除已合并的分支,-D 强制删除未合并的分支。

远程仓库交互

与远程仓库(如 GitHub、GitLab)交互是团队协作的基础:

  • git remote -v:查看远程仓库别名和地址。
  • git remote add <alias> <url>:添加远程仓库,如 git remote add origin https://github.com/user/repo.git
  • git push -u <alias> <branch>:推送本地分支到远程仓库,-u 设置上游分支(首次推送需加)。
  • git pull <alias> <branch>:拉取远程分支更新并合并到当前分支,相当于 git fetch + git merge
  • git fetch <alias>:获取远程仓库更新但不会合并,需手动 git merge

标签管理

标签用于标记重要版本(如 v1.0):

  • git tag:列出所有标签。
  • git tag -a <tag_name> -m "标签信息":创建带注释的标签。
  • git push <alias> <tag_name>:推送标签到远程仓库。
  • git checkout -b <branch_name> <tag_name>:基于标签创建新分支。

其他实用命令

  • git stash:暂存工作目录的修改(如 git stash push -m "说明"),git stash pop 恢复并删除暂存,git stash list 查看暂存列表。
  • git clean -fd:删除未跟踪的文件和目录(-f 强制删除,-d 删除目录)。
  • git reflog:查看 HEAD 的移动历史,用于恢复丢失的提交。

常用命令速查表

功能分类 命令示例 说明
仓库配置 git config --global user.name "Name" 设置全局用户名
git init 初始化本地仓库
文件操作 git add file.txt 添加文件到暂存区
git commit -m "提交信息" 提交暂存区文件
历史记录 git log --oneline 简化显示提交历史
git reset --hard HEAD~1 回退到上一个提交
分支管理 git checkout -b dev 创建并切换到 dev 分支
git merge dev 合并 dev 分支到当前分支
远程仓库 git push origin main 推送 main 分支到远程 origin
git pull origin main 拉取远程 main 分支更新
标签管理 git tag -a v1.0 -m "版本1.0" 创建带注释的标签

相关问答FAQs

Q1: 如何解决 Git 合并冲突?
A: 当两个分支对同一文件的同一部分进行修改合并时,冲突会自动标记在文件中(如 <<<<<<< HEAD、、>>>>>>> branch_name),解决步骤:① 手动编辑冲突文件,删除标记符并保留需要的代码;② 执行 git add <file> 标记冲突已解决;③ 提交合并结果:git commit -m "解决冲突,合并分支"

Git Bash 常用命令有哪些?-图3
(图片来源网络,侵删)

Q2: Git 中 resetrevertcheckout 的区别是什么?
A: 三者功能不同:git reset 用于移动 HEAD 指针和重置暂存区/工作目录(--soft 仅移动指针,--mixed 移动指针并重置暂存区,--hard 完全重置工作目录);git revert 通过创建新提交来撤销修改,保留历史;git checkout 主要用于切换分支或恢复文件(如 git checkout -- file.txt 从暂存区恢复文件到工作目录)。reset --hard 会丢失修改,需谨慎使用。

分享:
扫描分享到社交APP
上一篇
下一篇