作为一名业余玩家,Git早已成为我日常写博客不可或缺的工具。从最初对着命令行一脸迷茫,到现在能熟练用命令完成代码的提交、分支管理,中间从不懂,到懂点点,也总结了不少实用经验。今天就来梳理一波Git最常用的命令。
一、Git基础:初始化与配置
在使用Git之前,首先要完成基础配置;如果是新项目,还需要初始化仓库。这部分命令虽然用得不多。
- 全局配置(仅需执行一次)
配置用户名和邮箱,这会关联到你的每一次代码提交,是身份标识的关键。
---# 配置用户名git config --global user.name "你的用户名"# 配置邮箱git config --global user.email "你的邮箱地址"# 查看配置信息git config --list---提示如果去掉
--global参数,配置仅对当前仓库生效,适合多账号开发的场景。
- 初始化仓库
两种常见场景:一是本地新建项目后初始化Git仓库;二是从远程仓库克隆项目到本地。
---# 本地项目初始化(进入项目根目录执行)git init# 克隆远程仓库(替换为你的仓库地址)git clone https://github.com/your-username/your-repo.git---二、核心操作:工作区与版本控制
这部分是日常开发中用得最频繁的命令,涉及代码的暂存、提交、查看状态等,是Git版本控制的核心。
- 查看文件状态
开发过程中,经常需要查看哪些文件被修改过、哪些未被跟踪,这个命令必须记牢。
---# 查看详细状态(推荐,显示具体修改文件)git status# 简化状态显示(简洁明了,适合快速了解情况)git status -s---- 暂存与取消暂存
暂存(add)是将工作区的修改提交到暂存区,为后续的提交做准备;如果暂存错了文件,也可以取消暂存。
---# 暂存单个文件git add 文件名.js# 暂存所有修改(包括新增、修改、删除)git add .# 暂存指定目录下的文件git add 目录名/# 取消单个文件的暂存git reset HEAD 文件名.js# 取消所有暂存的文件git reset HEAD .---- 提交代码
将暂存区的修改提交到本地仓库,形成一个版本记录,提交信息一定要清晰,方便后续回溯。
---# 基础提交(-m后接提交信息)git commit -m "feat: 新增用户登录功能"# 提交时自动暂存已跟踪的文件(无需先执行git add)git commit -am "fix: 修复登录按钮点击无响应问题"# 修改最近一次的提交信息(如果提交信息写错了)git commit --amend---信息提交信息建议遵循规范,比如
“feat: 功能描述”“fix: bug描述”“docs: 文档修改”等,团队协作时更易维护。
- 查看提交记录
当需要查看历史提交记录,了解代码变更轨迹时,这些命令非常实用。
---# 查看所有提交记录(按时间倒序,最新的在最上面)git log# 简化显示(只显示提交ID、作者、时间和提交信息)git log --oneline# 查看指定文件的提交记录git log 文件名.js# 查看分支合并记录(更清晰的分支关系)git log --graph --pretty=oneline --abbrev-commit---三、分支管理:高效并行开发
分支是Git的强大功能之一,通过分支可以实现并行开发,比如在feature分支开发新功能,在bugfix分支修复问题,避免影响主分支的稳定性。
- 分支基础操作
---# 查看所有本地分支(当前分支前有*标记)git branch# 查看所有分支(包括远程分支)git branch -a# 创建新分支git branch 分支名(如feature/login)# 切换到指定分支git checkout 分支名# 创建并切换到新分支(常用,一步到位)git checkout -b 分支名# 删除本地分支(分支已合并到主分支时使用)git branch -d 分支名# 强制删除本地分支(分支未合并,确需删除时使用)git branch -D 分支名---- 分支合并与冲突解决
当功能开发完成或bug修复后,需要将分支合并到主分支(如main或master)。合并时可能会出现冲突,这是需要重点关注的地方。
---# 1. 先切换到主分支git checkout main# 2. 拉取主分支最新代码(避免合并时出现冲突)git pull# 3. 合并目标分支到主分支git merge 分支名(如feature/login)---如果合并时出现“Automatic merge failed; fix conflicts and then commit the result”提示,说明出现了冲突。解决步骤:
-
打开提示冲突的文件,文件中会用“<<<<<<< HEAD”“=======”“>>>>>>> 分支名”标记出冲突部分。
-
根据业务需求修改冲突内容,删除标记符号,保留正确的代码。
-
修改完成后,执行“git add 冲突文件名”和“git commit -m “resolve conflict: 合并登录功能分支””完成合并。
四、远程协作:与团队同步代码
在团队开发中,需要与远程仓库进行交互,比如拉取团队成员的代码、推送自己的代码到远程仓库。
- 远程仓库基础操作
---# 查看远程仓库信息git remote -v# 关联远程仓库(本地仓库未关联时使用)git remote add origin 远程仓库地址# 解除与远程仓库的关联git remote remove origin# 修改远程仓库地址git remote set-url origin 新的远程仓库地址---- 拉取与推送代码
---# 拉取远程主分支最新代码(并合并到本地当前分支)git pull origin main# 推送本地分支到远程仓库(首次推送需要指定上游分支)git push -u origin 分支名# 后续推送同一分支,直接执行git push# 拉取远程指定分支的代码(本地没有该分支时会自动创建)git checkout -b 本地分支名 origin/远程分支名---提示推送代码前,一定要先拉取远程最新代码
(git pull),避免出现代码冲突导致推送失败。
慎用强制推送(谨慎使用)
如果本地分支修改了历史提交(比如用git rebase整理了提交记录),推送时会提示冲突,此时可以使用强制推送,但一定要谨慎,避免覆盖远程仓库的重要代码。
---# 强制推送(会覆盖远程分支,团队协作中尽量避免)git push -f origin 分支名# 更安全的强制推送(会检查远程分支是否有未同步的修改,推荐)git push --force-with-lease origin 分支名---五、实用小技巧:提升效率
-
撤销工作区修改:如果修改了文件但还没暂存,想恢复到上一次提交的状态,可以用
“git checkout -- 文件名”。 -
暂存当前工作区:当需要切换分支,但当前工作区的修改还不想提交时,可以用
“git stash”暂存起来,切换分支完成操作后,再用“git stash pop”恢复暂存的内容。 -
忽略文件:在项目根目录创建
“.gitignore”文件,将不需要纳入版本控制的文件(如node_modules、.env、日志文件等)写入其中,Git会自动忽略这些文件。
六、总结
以上这些命令基本覆盖了日常记录开发中90%的场景,Git的命令虽然多,但不需要死记硬背,多用几次自然就熟练了。刚开始可以把这篇文章收藏起来,需要的时候随时查阅,等用得多了,很多命令就会形成肌肉记忆。
Git的强大远不止这些,比如标签管理(git tag)、变基(git rebase)等高级功能。
部分信息可能已经过时