Git 极速教程
Git 极速教程
理解 Git:代码时光机
你可以把 Git 想象成一个很严肃但很靠谱的“代码存档管理员”:
- 你写代码,它在旁边看着。
- 你说“这版不错,存一下”,它就给你拍照留档。
- 你哪天把项目改炸了,它会淡定地说:“别慌,上一个存档还在。”
- 别人做了一些修改,没问题,它会帮你合并,有冲突时,它会问你:“看看你们俩谁的对,还是需要整合处理一下”
简单来说,一段代码,你先编写了一下,编译通过了,你觉得看起来不错,那么你可以给这个软件起个版本号,比如v0.1 接下来,你觉得功能不够,你的朋友帮忙补充了一些,那么现在版本是v0.2 忽然你发现原先编写的某些功能不正常了,那么有可能是v0.2版引入了一个bug。 于是你需要回退到之前的版本,并比较修改了哪些部分,这个过程就是在进行版本管理。
Git 最核心的用法,其实就三句话:
git add .
git commit -m "写清楚这次改了啥"
git push
翻译过来就是:
git add .:把当前改动记下来,这个文件要git处理了。git commit -m "...":生成一个正式存档版本,并写上了备注信息。git push:把本地存档上传到远程仓库,比如 GitHub。
Git 的三大现场
Git 里最常见的三个地方:
- 工作区:你电脑里正在修改的文件,还只是“我改了”,Git 已经看见了,但还没准备保存。
- 暂存区:这次准备提交的改动清单。
git add就是在说:“这些改动我要打包成一个版本。” - 仓库:已经正式保存下来的版本历史。
git commit之后,这次改动才算真正进了 Git 的档案库。
流程大概是这样:
写代码 -> git add -> git commit -> git push
只要记住这条流水线,你就已经不是 Git 小白,而是“刚拿到驾照的版本管理员”。
常用命令速查
查看现在乱不乱
git status
这个命令非常重要。它会告诉你:
- 哪些文件改了。
- 哪些文件还没加入暂存区。
- 当前分支有没有领先或落后远程仓库。
一句话:不知道发生了什么,就先 git status,看看现在工作区,暂存区都是啥样。
把改动加入暂存区
git add 文件名
git add .
git add 文件名 表示只添加某个文件。
git add . 表示把当前目录下所有改动都添加进去。它很方便,但也很豪爽,可能把你不想提交的东西也塞进去,所以用之前最好先 git status 看一眼。
提交一次存档
git commit -m "完成登录功能"
提交信息不要写成:
git commit -m "改了一点东西"
这样未来的你看了只会一脸懵逼,不知道改了啥。
推荐写清楚一点:
git commit -m "修复登录按钮无法点击的问题"
和远程仓库打交道
第一次克隆项目
git clone 仓库地址
意思是:把远程仓库完整复制到本地。
拉取别人最新的代码
git pull
意思是:把远程仓库的新内容同步到本地。
多人合作时,开始写代码前先 git pull,让别人的改动先同步到你的机器上,让大家避免鸡同鸭讲。
上传自己的提交
git push
意思是:把你的本地提交推到远程仓库。
如果 commit 是本地存档,那么 push 就是把存档发到云端,告诉大家:“朋友们,我更新了。”
分支:平行宇宙实验室
分支可以理解为“开一个平行宇宙”。你可以在里面大胆实验,改炸了也不会立刻污染主线。
查看分支
git branch
创建并切换到新分支
git checkout -b feature-login
或者新版 Git 可以写:
git switch -c feature-login
分支名建议写得有意义,比如:
feature-login:开发登录功能。fix-header-style:修复头部样式。docs-git-guide:修改 Git 文档。
不要叫 newnewnew-final-v2,这不是分支名,这是人类精神状态报告。
切换分支
git switch main
git switch feature-login
切换分支前最好先 git status,确认没有未处理的改动,不然 Git 可能会拦住你:“你先把手里的锅放下,再去隔壁厨房。”
合并分支
当你的分支功能写完了,可以切回主分支并合并:
git switch main
git pull
git merge feature-login
意思是:
- 回到主分支。
- 先同步最新代码。
- 把功能分支合进来。
如果多人合作,更常见的做法是提交 Pull Request,让别人帮你看看代码有没有坑。
冲突:Git 的家庭伦理剧
如果两个人改了同一个地方,Git 不知道该听谁的,就会产生冲突。
冲突文件里可能出现这种东西:
<<<<<<< HEAD
你的版本
=======
别人的版本
>>>>>>> branch-name
别怕,这不是乱码,这是 Git 在说:“你俩自己商量,我不背锅。”
解决方法:
- 打开冲突文件。
- 手动决定保留哪部分内容。
- 删除
<<<<<<<、=======、>>>>>>>这些标记。 - 重新提交。
git add .
git commit -m "解决合并冲突"
后悔药:查看历史和回退
查看提交历史
git log
如果嫌它太长,可以用:
git log --oneline
查看某个文件改了什么
git diff
git diff 会显示你还没提交的改动。它像一个冷静的朋友,帮你指出:“你刚才确实动了这里,别装没看见。”
撤销还没提交的改动
git restore 文件名
注意:这个命令会丢掉文件当前未提交的修改。用之前请确认你真的不要了,不然它会像橡皮擦一样干脆。
新手推荐工作流
日常使用 Git,可以按这个顺序来:
git pull
git status
git switch -c my-task
# 写代码,改文档,快乐施工
git status
git add .
git commit -m "说明这次完成了什么"
git push
如果你只记一套流程,就记这个。
最后总结
Git 不神秘,它主要做三件事:
- 记录历史:
git add+git commit - 同步代码:
git pull+git push - 管理实验:
git branch+git switch+git merge
初学时别追求把 Git 的十八般兵器一次学完。先会 status、add、commit、pull、push、switch,你就已经能在大多数项目里正常生存。
剩下的高级操作,等你真的遇到问题再学。Git 就像厨房刀具:先会切菜就行,不必第一天就练蒙眼雕萝卜。