奶奶也能学会的 Git:孩子,过来,奶奶教你管代码

4 阅读5分钟

哎哟,孩子,别站着,坐下,先喝口热水。

奶奶知道,你一听见 Git 就头疼。什么工作区、暂存区、仓库、分支、合并、变基……听着像天书。其实啊,Git 没那么玄乎。你就把它当成奶奶的记账本:今天买了白菜,记一笔;明天买了豆腐,再记一笔。哪天想看看上个月花了多少钱,翻开本子就行。

Git 就是给你的文件记账的。你每改一次,它就帮你记一次。以后想回到哪一天,都能找回来。


一、先告诉 Git 你是谁

孩子,去人家家里做客,得先敲门,报上名。Git 也一样。

打开终端,先敲这两句:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

奶奶跟你说,这名字和邮箱,是你每次“记账”时签的名。别写成“张三李四王二麻子”,写你常用的就行。

装 Git 去哪儿装?去 git-scm.com,下载,一路下一步。Windows、Mac、Linux 都能用。奶奶不骗你。


二、新建一个账本,或者借别人的账本

如果你要从头开始,就在文件夹里敲:

git init

这就等于奶奶拿了个新本子,第一页写上“某某某的账本”。

如果你要把别人的项目拿过来,就敲:

git clone 仓库地址

比如:

git clone https://github.com/某某/某某项目.git

这就等于把人家整本账本复印了一份,放你桌上。


三、三个篮子,别搞混

奶奶给你摆三个篮子。

第一个叫工作区。就是你眼前这个文件夹,你正在改的文件都在这儿。

第二个叫暂存区。你改完了,觉得“这回改得还行”,就把它放进这个篮子。

第三个叫仓库。放进去的改动,正式记到账本上,就成了历史。

你每天干的活,就是在三个篮子之间倒腾。


四、每天就四句话,记住喽

孩子,别背一百个命令。奶奶教你四句,日常够用八成。

第一句:看看现在啥情况

git status

奶奶说,干活前先看状态。哪些文件改了,哪些没改,哪些还没放篮子,它都告诉你。

第二句:把改动放进暂存区

git add .

那个点,意思是“当前文件夹里所有改动,都放进来”。你要是只想放一个文件,就写:

git add 文件名

第三句:正式记一笔

git commit -m "说明这次改了啥"

比如:

git commit -m "修了登录按钮点不动的问题"

奶奶提醒你,引号里的话,是给以后的你看的。别写“改了一下”,写清楚点。不然过三个月,你自己都不知道改了啥。

第四句:传到远方去

git push

这是把账本传到 GitHub、GitLab、Gitee 那些地方。第一次传,可能要敲:

git push -u origin main

以后就一句 git push 就行。


五、奶奶的顺口溜

你把这四句连起来,就是奶奶的顺口溜:

先 status 看一看,
add 装盘别偷懒,
commit 拍照留档案,
push 上传给伙伴。

记住了没?没记住就抄手上。


六、想看看过去,就翻账本

git log --oneline

这一行,能把你以前记的账,一条一条列出来。每条前面有一串字母数字,那是编号,叫 commit hash。奶奶管它叫“账页号”。

想看得更漂亮点:

git log --oneline --graph --all

哎哟,那个图一出来,谁跟谁分的叉,谁跟谁合的伙,清清楚楚。


七、和远方的人一起干活

一个人干活简单,多个人干活,就得讲规矩。

先把远方的账本拉下来:

git pull

再把你的账本推上去:

git push

顺序就是:先拉,再推。别反过来。反过来容易打架。

要是推不上去,提示 rejected,别慌。多半是别人先推了新东西。你先 git pull,把别人的拿下来,合到一起,再 git push


八、分支:平行世界

孩子,分支这东西,听着吓人,其实就是“另开一页写草稿”。

你想试个新功能,又怕把主账本弄乱,就开个分支:

git switch -c 新功能

这等于奶奶说:“你去旁边小本子上试,试好了再抄回大本子。”

试完了,切回主分支:

git switch main

然后把小本子合并进来:

git merge 新功能

要是合并完不想要那个分支了:

git branch -d 新功能

就这么简单。


九、冲突了?哎哟,别哭

冲突不可怕。冲突就是:你改了第三行,他也改了第三行,Git 不知道听谁的。

打开那个文件,你会看到:

<<<<<<< HEAD
你写的内容
=======
别人写的内容
>>>>>>> 别人的分支

奶奶教你:把 <<<<<<<=======>>>>>>> 这些乱七八糟的线全删掉,留下你真正想要的那段话。

改完以后:

git add .
git commit -m "解决了冲突"

完事。别怕,Git 不会吃了你。


十、后悔药,奶奶也给你备着

改乱了,想撤销没提交的修改

git restore 文件名

全撤销:

git restore .

放错篮子了,想从暂存区拿出来

git restore --staged 文件名

提交错了,想撤销提交但保留改动

git reset --soft HEAD~1

彻底不要了,回到上一次提交

git reset --hard HEAD~1

哎哟,这个可危险。你敲之前,先摸摸心口,问自己三遍:“我真不要了吗?” 真不要了再敲。

万一真搞丢了

git reflog

这个命令,是奶奶的救命箱。你只要提交过,它多半能帮你找回来。找到那一条,再 git reset --hard 账页号,就回来了。


十一、奶奶的最后一课

孩子,Git 不是靠背的。你就记住这个流程:

  1. 改文件
  2. git status 看看
  3. git add . 装盘
  4. git commit -m "说明" 记账
  5. git push 上传
  6. 别人改了,就 git pull 拉下来
  7. 出事了,就 git statusgit loggit reflog 三件套

奶奶活这么大岁数,明白一个理儿:工具是拿来用的,不是拿来怕的。

你第一次敲错命令,没关系。第二次合并冲突,也没关系。第三次推不上去,更没关系。谁不是从 git status 开始学的?

行了,奶奶去做饭了。你先把 git status 敲一遍,敲完来厨房端菜。

记住喽:先拉后推,先看后改,危险命令慢点敲。
Git 不难,难的是你不敢敲第一下。