我是怎么学会Github的?
我是怎么学会Github的?
前言
其实不知道前言写啥,介绍github的事情太多人干过了。
轮到自己来干的时候感觉像在把自己蒸馏成skill一样。
好吧,就只是完成任务而已,讲讲自己是怎样学会github的,讲讲来时路。
正篇
① 命令基础
这里写一些github的基础操作。
Init
git init 用来把当前文件夹初始化成一个git仓库。
执行后,当前目录会生成一个隐藏的.git文件夹,git会开始记录这个项目的版本变化。
.gitignore
.gitignore 用来告诉Git哪些文件不需要被记录。
例如:
node_modules/
.env
dist/
.DS_Store
比如依赖文件夹、密钥配置文件、打包结果等,一般不需要提交到GitHub。
通常情况下,IDE创建项目或是执行git init时,该文件会自动生成,可以进入自行修改。
Pull
git pull用来从远程仓库拉取最新代码,并合并到本地。
多人协作时,写代码前最好先执行一次,避免本地代码太旧。
Clone
git clone 用来把远程仓库复制到本地。
git clone 仓库地址
执行后,本地会多出一个项目文件夹,里面就是仓库代码。
Commit
git commit用来提交一次版本记录。
通常会先添加文件:
git add .
然后提交:
git commit -m "提交说明"
提交说明 简单写清楚这次改了什么即可。
Push
git push 用来把本地提交推送到 GitHub。
如果是第一次推送到某个分支,可能需要写成:
git push -u origin main
之后再推送一般直接使用 git push 即可。
Fetch
git fetch 用来获取远程仓库的最新信息,但不会自动合并到本地代码。
git fetch
它适合在不想立刻修改本地代码时,先查看远程仓库有没有更新。
Branch
branch也就是分支,用来在不影响主线代码的情况下开发新功能或修改问题。
有关Branch的内容非常多非常繁杂,学懂都不容易更别说自己用了。
所以本文不在此多做介绍,若想学可以使用下文提到的learnGitBranching。
或者尤其现在AI时代,遇到不会的操作多问LLM就是了。
② 流程
了解完上面的命令后,我们可以把git / github的日常使用流程简单理解为:
第一次使用项目
如果是新建本地项目:
git init
如果是自己本地新建的项目,想上传到github,需要先在github创建仓库,并在本地连接远程仓库:
git remote add origin 仓库地址
其中origin是远程仓库的默认名字,仓库地址可以在github仓库页面复制。
查看当前连接的远程仓库:
git remote -v
如果是从github下载已有项目:
git clone 仓库地址
修改代码后提交
写完代码后,可以先查看当前文件状态:
git status
把修改过的文件添加到暂存区:
git add .
提交本次修改:
git commit -m "提交说明"
推送到github
提交完成后,把本地代码推送到远程仓库:
git push
拉取最新代码
如果是多人协作,开始写代码前建议先拉取最新内容:
git pull
简单来说,最常见的流程就是:
git remote add origin 仓库地址
git pull
...
git add .
git commit -m "提交说明"
git push
也可以理解为:先同步别人的代码,再保存自己的修改,最后上传到 GitHub。
③ 教学
这里写一些关于我是怎么学会github的内容吧,介绍来时路。
learnGitBranching
这是一个免费开源的网页游戏,以游戏的方式教你如何理解git中的branch。
从一开始的HEAD、~、^n开始,到后面的rebase、fetch、cherrypick这样的复杂命令,这个网页都以关卡的形式带你一步步学习并完成。
以可视化的方式学习git不仅有趣而且事半功倍,比自己一直盯着CLI里看好多了。
更好玩的是,这个网页提供了git的sandbox环境,你可以用可视化的方式自己在沙箱里各个节点之间跳转来玩。
此外,网页几乎全支持中文,有什么理由不去玩学习呢?
LLM
在当前LLM这么发达的环境下,有什么问题不能找LLM解决呢?尤其是这种CLI内的操作,完全是LLM的好球区。
不会用git?问问LLM吧。
遇到git命令报错?问问LLM吧。
提交和预期不符?问问LLM吧。
有什么不能问LLM的呢?
甚至连这篇博客的前面部分,很多也是LLM辅助完成的。
XD
④ 额外
再写一些想写的吧。
IDE
实际上现代的IDE对于git的支持相当好了,而且都是内置git功能,甚至创建项目时都会自动创建适合项目的.gitignore。
在开发过程中,与当前本地分支不同的更改还会在侧边文件浏览器高亮,以VSCode为例:
- 被
.gitignore的文件透明度会降低。 - 删除是红色的
D。 - 新增是绿色的
U。 - 修改是黄色的
M。- 修改还会标注具体有多少条更改,还能进行
Tree比对。
- 修改还会标注具体有多少条更改,还能进行
尤其是VSCode,其侧边甚至自带了可视化的git管理工具,你可以在 0命令 的情况下完成基础的pull、push、commit等操作。
还有可视化的git log,可以很清楚的看见每个commit和当前所处的分支。
其实
VSCode并不算IDE,本质是超级浏览器。
不过把它当IDE来用完全没有什么问题,而且很多程序员其实也根本不知道VSCode不算IDE。
LLM
还是一样,现在的LLM可以回答你很多问题了。
这块和上面一样,这里就不复述了。
Agent
比起LLM,Agent可就更厉害了。
上面教学部分我没提Agent,就是因为Agent比起教你学习git,它更适合 直接帮你完成你需要的git任务 。
直接给到权限,然后告诉Agent要做什么,他就会帮你完成了,甚至还会自己浏览你的github仓库页面检查是否完成了任务。
而且像git / github这样对于Agent来说简单的内容,你也无需自己部署什么skill,甚至连蒸馏的几b模型都能顺利完成这部分操作。
这就是Agent的强大,全交给它都可以的。
总结
前言不知道写什么,总结自然也不知道写什么。
github很好用,好用到干这行不得不学,所以感觉也没啥好说的。
可能唯一想说的就是,大AI时代,还是要学会拥抱AI吧。
都说程序员怕被蒸馏成skill失业,但其实又有多少程序员不值得被蒸馏呢?
请保持饥饿,保持学习吧。

浙公网安备 33010602011771号