适用场景
无论是搭建个人博客、维护公司官网,还是参与团队项目开发,Git 都是绕不开的版本管理工具。很多刚接触 Linux 服务器或新入职开发的读者,虽然听说过 git clone、git push 这些命令,但真正动手时经常卡在"提交到哪了""分支怎么切""冲突了怎么办"这些问题上。
这篇文章面向 Git 初学者和需要查漏补缺的开发者,按照实际开发中的完整工作流,把最常用的 Git 命令串起来演示一遍。照着本文一步步操作,你可以完成从获取代码、修改提交,到分支管理、处理合并冲突的全部日常操作。本文假设你已在系统上安装好 Git,可用 git --version 验证;如未安装,CentOS 系可执行 yum install git,Ubuntu/Debian 系可执行 apt install git。
第一步:完成初始配置
首次使用 Git 前,需要设置用户名和邮箱,这两项信息会随每次提交一起记录,是团队协作中识别提交者身份的依据。执行以下命令:
git config --global user.name "你的名字"git config --global user.email "you@example.com"
如果希望长期使用而避免每次推送都输入密码,可以配置凭据缓存或改用 SSH 方式拉取仓库。另外建议执行 git config --global init.defaultBranch main,让新建仓库默认使用 main 分支,避免新旧系统默认分支名不一致带来的困惑。配置完成后,可用 git config --list 查看当前全部配置确认无误。
第二步:克隆仓库与获取更新
参与已有项目的第一步是把远程仓库代码拉到本地。使用 git clone https://github.com/用户名/仓库名.git,命令执行后会在当前目录生成与仓库同名的文件夹。如果只需要最新版本而不需要历史提交记录,可以加 --depth 1 参数做浅克隆,能明显加快大型仓库的下载速度。
克隆完成后进入项目目录,日常开发中要养成开工前先更新代码的习惯:执行 git pull 即可拉取远程最新提交并合并到当前分支。这样可以减少后面合并冲突的概率。随时执行 git status 查看工作区状态,它会告诉你哪些文件被修改、哪些文件还未被 Git 跟踪,是最常用的"体检"命令。
第三步:提交代码的完整流程
日常修改代码后的提交流程遵循"修改 → 暂存 → 提交 → 推送"四步。先修改文件,然后用 git add 文件名 将改动加入暂存区;如果想提交全部改动,可直接用 git add .。暂存区的作用是让你精确控制本次提交包含哪些内容,可以分多次 add、一次 commit。
接着执行 git commit -m "本次改动的简要说明" 完成提交。提交说明建议写清楚做了什么改动,例如"修复登录页验证码不显示的问题",方便日后回溯。最后执行 git push 将本地提交推送到远程仓库。推送前如果想核对本次提交内容,可用 git log --oneline -5 查看最近 5 条提交记录,或用 git diff 查看尚未暂存的改动明细。

有一点需要特别注意:提交完成后发现遗漏了文件或说明写错,如果尚未推送到远程,可用 git commit --amend 追加修改;但如果已经 push,就不建议 amend 了,改用新的提交来修正,避免改写远程历史影响其他协作者。
第四步:分支的创建、切换与合并
分支是 Git 最核心的功能。推荐的做法是:主分支(main 或 master)保持稳定可用,每次开发新功能或修 Bug 都从主分支切出独立分支,完成并测试后再合并回去。查看所有分支用 git branch(带 -a 可查看远程分支)。
创建并切换到新分支:git checkout -b feature-add-login;在新版 Git 中也可以用 git switch -c feature-add-login,语义更清晰。在新分支上的提交不会影响主分支,可以放心实验。开发完成、测试通过后,切回主分支执行合并:
git checkout maingit merge feature-add-login
合并完成后即可 git push 推送主分支,再用 git branch -d feature-add-login 删除已合并的本地分支。整个"分支开发—合并—删除"的循环,就是团队协作中最日常的工作模式。
第五步:处理合并冲突
当两个分支修改了同一处代码,merge 时 Git 无法自动决定保留哪个版本,就会产生冲突,并在文件中用 <<<<<<<、=======、>>>>>>> 标记出冲突区域。遇到冲突不要慌,按以下流程处理:先执行 git status 找出所有标记为 conflicted 的文件;然后逐个打开文件,找到冲突标记,与同事确认后手动保留正确的内容,删除冲突标记行。
处理完所有冲突后,执行 git add 文件名 将解决结果加入暂存区,最后 git commit 完成这次合并提交。如果处理到一半发现方向不对,想彻底放弃本次合并,可执行 git merge --abort 回到合并前的状态,这是最安全的"后悔药"。减少冲突的关键在于:小步提交、频繁同步主分支(经常 pull)、分支存活时间不要过长。
常见问题
1. git push 提示被拒绝(non-fast-forward)怎么办?通常是远程分支上有你本地没有的新提交。先执行 git pull --rebase 把远程更新同步下来再推送;不要随意使用 git push -f 强推,那会覆盖远程历史,团队协作中可能丢掉别人的提交。
2. 想撤销工作区的修改可以吗?文件尚未 add 时,用 git checkout -- 文件名(新版可用 git restore 文件名)丢弃本地修改;如果已经 add 但未 commit,用 git restore --staged 文件名 移出暂存区。注意撤销后未提交的改动无法找回,操作前确认不再需要这些修改。
3. 如何回退到某次提交?已推送的提交建议用 git revert 提交ID,它会生成一条"反向提交"来抵消指定提交,历史记录完整且安全;本地未推送的提交可以用 git reset --hard 提交ID 直接回退,但该方式会丢弃之后的提交,操作前务必确认。
4. 误删了分支怎么找回?只要分支上的提交尚未被垃圾回收,都可以通过 git reflog 找到对应的提交 ID,然后用 git checkout -b 分支名 提交ID 重建分支。这也是建议定期查看 reflog 的原因——它是 Git 的本地操作安全网。
总结
本文按照"初始配置 → 克隆更新 → 提交推送 → 分支管理 → 冲突处理"的完整链路,覆盖了 Git 日常使用中 90% 以上的高频操作。对普通开发者来说,掌握 git status、git add、git commit、git pull、git push、git checkout 这几个核心命令,就足以应对大部分日常场景;分支与合并的熟练运用,则是从个人开发走向团队协作的关键一步。
建议在实际项目中多加练习:从主分支切一个小分支做一个改动并合并回去,完整走一遍流程,比看十篇教程都有效。操作有风险的动作(reset --hard、push -f、删除分支)务必先确认影响范围,重要分支建议定期推送到远程作为备份。后续我们还会介绍 Git 标签、子模块、rebase 进阶用法等内容,欢迎持续关注。













暂无评论内容