菜鸟科技网

Git常用命令有哪些?阮一峰详解了吗?

Git 是目前最流行的分布式版本控制系统,由 Linus Torvalds 创建,用于高效管理代码版本,阮一峰老师的 Git 教程以通俗易懂、逻辑清晰著称,帮助无数开发者快速上手,以下结合阮一峰老师的讲解,梳理 Git 常用命令的核心用法与实践场景。

Git常用命令有哪些?阮一峰详解了吗?-图1
(图片来源网络,侵删)

基础配置与仓库初始化

在使用 Git 前,需先配置用户信息,这是每次提交记录的标识,通过 git config 命令设置全局或局部用户名和邮箱:

  • 全局配置:git config --global user.name "Your Name"
  • 全局配置:git config --global user.email "your.email@example.com"
  • 查看配置:git config --list

初始化仓库时,在项目目录执行 git init,会在当前目录创建一个 .git 文件夹,用于存储版本历史记录,若要克隆远程仓库,使用 git clone [仓库地址]git clone https://github.com/user/repo.git,这会自动下载整个仓库到本地。

文件状态与暂存区管理

Git 的核心工作区包括:工作目录(编辑文件)、暂存区(临时存储即将提交的文件)、版本库(最终提交的历史记录),查看文件状态使用 git status,会显示未跟踪、已修改、已暂存等状态。

添加文件到暂存区是提交前的关键步骤:

Git常用命令有哪些?阮一峰详解了吗?-图2
(图片来源网络,侵删)
  • git add [文件名]:添加指定文件(如 git add readme.md)。
  • git add .git add -A:添加所有修改和未跟踪的文件。
  • git reset [文件名]:将已暂存的文件从暂存区移除(回退到工作目录)。

若要取消工作区的修改(恢复到最近提交状态),使用 git checkout -- [文件名],注意:此操作会丢失未提交的修改,需谨慎使用。

版本提交与历史查看

提交暂存区的文件到版本库,使用 git commit -m "提交说明",提交说明需清晰描述变更内容,若提交后发现漏掉文件,可通过 git commit --amend 修改最后一次提交(会打开编辑器修改说明或添加暂存文件)。

查看提交历史是日常高频操作:

  • git log:显示详细的提交历史(包括作者、时间、提交说明),支持 git log --oneline 简化输出(每行显示一个提交的哈希值和说明)。
  • git log --graph --all:以图形化方式展示分支合并历史。
  • git show [提交哈希]:查看某次提交的具体修改(如 git show a1b2c3d)。

分支管理:协作与迭代的基石

分支是 Git 的核心功能,允许并行开发不同功能而不互相干扰,常用分支命令如下:

Git常用命令有哪些?阮一峰详解了吗?-图3
(图片来源网络,侵删)
命令 作用 示例
git branch 查看本地分支(当前分支前带 ) git branch
git branch [分支名] 创建新分支 git branch feature/login
git checkout [分支名] 切换到指定分支 git checkout feature/login
git checkout -b [分支名] 创建并切换到新分支 git checkout -b bugfix/fix-error
git merge [分支名] 将指定分支合并到当前分支 git master 分支执行 git merge feature/login
git branch -d [分支名] 删除已合并的分支 git branch -d feature/login
git branch -D [分支名] 强制删除未合并的分支 git branch -D feature/experiment

开发中通常通过 main(或 master)分支作为稳定版本,develop 分支作为开发集成分支,功能分支从 develop 分出,开发完成后合并回 develop

远程仓库操作

远程仓库(如 GitHub、GitLab)用于代码托管与团队协作,常用命令包括:

  • git remote -v:查看远程仓库地址( -v 表示显示详细名称和 URL)。
  • git push [远程仓库名] [分支名]:推送本地分支到远程仓库,如 git push origin main
  • git pull [远程仓库名] [分支名]:拉取远程分支并合并到当前分支(相当于 git fetch + git merge)。
  • git fetch [远程仓库名]:拉取远程更新但不合并,需手动 git merge

若推送时冲突,需先 git pull 拉取远程修改,解决冲突后提交再推送。

撤销与回退操作

  • 撤销工作区修改:git checkout -- [文件名](仅未提交的修改)。
  • 撤销暂存区修改:git reset HEAD [文件名](将文件从暂存区移回工作区)。
  • 撤销提交(保留修改):git reset --soft [提交哈希],退回暂存区状态,可重新提交。
  • 撤销提交并丢弃修改:git reset --hard [提交哈希],直接回退到指定提交状态(危险操作,会丢失后续修改)。
  • 撤销已推送的提交:使用 git revert [提交哈希],创建一个新提交来抵消指定提交的影响(安全,不会改变历史)。

标签管理

标签用于标记重要版本(如 v1.0.0),分为轻量标签(git tag [标签名])和附注标签(git tag -a [标签名] -m "说明"),推送标签到远程仓库需执行 git push origin [标签名],推送所有标签使用 git push origin --tags

相关问答 FAQs

Q1:git pullgit fetch 有什么区别?
A:git fetch 仅从远程仓库拉取最新代码到本地,但不自动合并,需手动执行 git merge 来合并分支;git pull 则是 git fetchgit merge 的组合,拉取后自动合并当前分支。git fetch 更安全(可先检查变更),git pull 更便捷(直接合并)。

Q2:如何撤销已推送到远程仓库的提交?
A:推荐使用 git revert 命令,要撤销提交 abc123,执行 git revert abc123,此时会打开编辑器输入提交说明,保存后生成一个新提交抵消原提交的修改,git push origin [分支名] 推送即可,注意:git revert 不会删除历史记录,适合已推送的提交;若要删除本地提交且未推送,可用 git reset --hard

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