跳至主要內容

Git 极速教程

西风逍遥游大约 6 分钟

Git 极速教程

理解 Git:代码时光机

你可以把 Git 想象成一个很严肃但很靠谱的“代码存档管理员”:

  • 你写代码,它在旁边看着。
  • 你说“这版不错,存一下”,它就给你拍照留档。
  • 你哪天把项目改炸了,它会淡定地说:“别慌,上一个存档还在。”
  • 别人做了一些修改,没问题,它会帮你合并,有冲突时,它会问你:“看看你们俩谁的对,还是需要整合处理一下”

简单来说,一段代码,你先编写了一下,编译通过了,你觉得看起来不错,那么你可以给这个软件起个版本号,比如v0.1 接下来,你觉得功能不够,你的朋友帮忙补充了一些,那么现在版本是v0.2 忽然你发现原先编写的某些功能不正常了,那么有可能是v0.2版引入了一个bug。 于是你需要回退到之前的版本,并比较修改了哪些部分,这个过程就是在进行版本管理。

Git 最核心的用法,其实就三句话:

git add .
git commit -m "写清楚这次改了啥"
git push

翻译过来就是:

  1. git add .:把当前改动记下来,这个文件要git处理了。
  2. git commit -m "...":生成一个正式存档版本,并写上了备注信息。
  3. git push:把本地存档上传到远程仓库,比如 GitHub。

Git 的三大现场

Git 里最常见的三个地方:

  1. 工作区:你电脑里正在修改的文件,还只是“我改了”,Git 已经看见了,但还没准备保存。
  2. 暂存区:这次准备提交的改动清单。git add 就是在说:“这些改动我要打包成一个版本。”
  3. 仓库:已经正式保存下来的版本历史。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

意思是:

  1. 回到主分支。
  2. 先同步最新代码。
  3. 把功能分支合进来。

如果多人合作,更常见的做法是提交 Pull Request,让别人帮你看看代码有没有坑。

冲突:Git 的家庭伦理剧

如果两个人改了同一个地方,Git 不知道该听谁的,就会产生冲突。

冲突文件里可能出现这种东西:

  <<<<<<< HEAD
  你的版本
  =======
  别人的版本
  >>>>>>> branch-name

别怕,这不是乱码,这是 Git 在说:“你俩自己商量,我不背锅。”

解决方法:

  1. 打开冲突文件。
  2. 手动决定保留哪部分内容。
  3. 删除 <<<<<<<=======>>>>>>> 这些标记。
  4. 重新提交。
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 不神秘,它主要做三件事:

  1. 记录历史:git add + git commit
  2. 同步代码:git pull + git push
  3. 管理实验:git branch + git switch + git merge

初学时别追求把 Git 的十八般兵器一次学完。先会 statusaddcommitpullpushswitch,你就已经能在大多数项目里正常生存。

剩下的高级操作,等你真的遇到问题再学。Git 就像厨房刀具:先会切菜就行,不必第一天就练蒙眼雕萝卜。