Git 常用命令详解
Git 是当今最流行的分布式版本控制系统之一,掌握 Git 的常用命令不仅是开发人员的基本技能之一,也有助于提高团队协作和项目管理的效率。本文将介绍 Git 中最常用的命令,帮助你快速上手并深入了解 Git 的使用。
git init
— 初始化仓库
git init
命令用于在本地目录中初始化一个新的 Git 仓库。这是将现有项目纳入 Git 管理的第一步。
git init
执行该命令后,Git 会在当前目录下创建一个 .git
目录,用于跟踪该项目的所有更改。
git clone
— 克隆远程仓库
git clone
命令用于将远程仓库复制到本地。它不仅会复制代码,还会复制整个项目的版本历史。
git clone https://github.com/user/repo.git
如果只想复制某个分支,可以加上 -b
参数:
git clone -b branch_name https://github.com/user/repo.git
git add
— 添加文件到暂存区
git add
命令用于将修改过的文件添加到暂存区,为下一次提交做好准备。它不会直接提交修改,而是标记哪些文件需要被提交。
git add <file>
如果要添加所有修改过的文件,可以使用 .
:
git add .
git commit
— 提交更改
git commit
用于将暂存区中的文件提交到本地仓库,生成新的版本快照。通常会加上 -m
参数添加提交信息,以说明这次提交的目的。
git commit -m "Add new feature"
如果想提交时对文件做进一步修改,可以使用 -a
:
git commit -am "Fix bug and commit changes"
git status
— 查看仓库状态
git status
命令用于查看当前工作区的状态。它会显示哪些文件被修改、哪些文件在暂存区以及哪些文件尚未被跟踪。
git status
这个命令可以帮助开发者随时了解项目中发生了哪些变化。
git log
— 查看提交历史
git log
命令用于查看项目的提交历史。它会列出所有提交的哈希值、作者、提交日期和提交信息。
git log
如果想要简化输出,可以使用 --oneline
参数:
git log --oneline
git diff
— 查看更改
git diff
命令用于比较文件的不同版本,展示工作区和暂存区之间的差异。它可以帮助你检查尚未提交的修改内容。
git diff
也可以用来比较不同分支或提交之间的差异:
git diff branch1 branch2
git branch
— 管理分支
git branch
命令用于创建、删除和列出分支。分支是 Git 强大的功能之一,允许开发者在不同的分支上并行开发。
- 创建新分支:
git branch <branch_name>
- 切换到新分支:
git checkout <branch_name>
- 删除分支:
git branch -d <branch_name>
- 列出所有分支:
git branch
git checkout
— 切换分支或恢复文件
git checkout
命令不仅用于切换分支,还可以用于恢复文件到某个特定版本。
- 切换分支:
git checkout <branch_name>
- 恢复文件到上一个提交状态:
git checkout -- <file_name>
git merge
— 合并分支
git merge
命令用于将其他分支的内容合并到当前分支。通常在完成一个功能开发后,将功能分支合并回主分支(master 或 main)。
git merge <branch_name>
如果有冲突,Git 会提示手动解决冲突,然后重新提交。
git pull
— 拉取远程代码并合并
git pull
是 git fetch
和 git merge
的组合命令,用于从远程仓库拉取最新的代码并与本地分支进行合并。
git pull origin <branch_name>
git push
— 推送代码到远程仓库
git push
命令用于将本地分支的提交推送到远程仓库。通常用于将本地开发的内容同步到远程仓库,供团队成员查看和使用。
git push origin <branch_name>
如果是第一次推送某个分支,可以使用 -u
参数,设置默认的远程分支:
git push -u origin <branch_name>
git stash
— 暂存当前更改
git stash
用于将当前的修改保存起来,以便切换到其他分支或执行其他操作。修改不会丢失,可以在后续恢复。
- 暂存当前更改:
git stash
- 查看所有暂存的内容:
git stash list
- 恢复暂存的更改:
git stash pop
git reset
— 撤销提交
git reset
命令用于撤销某次提交,可以回滚到特定的提交版本。reset 提供了三种模式:
soft
:仅重置提交,不修改工作区和暂存区的文件。mixed
:重置提交和暂存区,保留工作区的更改。hard
:重置提交、暂存区和工作区,彻底回滚更改。
git reset --hard <commit_hash>
git rebase
— 变基操作
git rebase
命令用于整理提交历史,使其更加清晰。在协同开发时,rebase 可以将你在本地的开发提交“移动”到远程分支的最新提交之后,保持提交历史的线性化。
git rebase <branch_name>
掌握 Git 的这些常用命令后,你就可以灵活管理项目中的代码版本,轻松进行分支操作,解决代码冲突,保障代码的稳定性和可追溯性。Git 不仅仅是一个版本控制工具,它还是团队协作和敏捷开发的重要支柱。