说来有点惭愧用了1年多的git至今还没有创建过分支,主要都是把git当成一个线上同步来用。 细想起来是因为我很难集中精力细看git的说明文档,另一方面很多网上的文章说的比较晦涩抽象,很难简明扼要的吸收要点。 但是git这些强大的功能到底作用是什么? 如何和实际工作联系,怎么样简单快速的get到这些功能的意义和使用方式呢? 今天就好好get一下。
git init
“这个文件夹,被我征用了,我要用它来做我的代码版本控制,其他工作就交给git你了。”
初始化仓库 初始化之后,git就会在这里生根发芽。
git clone git@xx.com/sth.git folder
“快帮我建一个和sth一样的仓库,放到folder文件夹就行了。(嗯,仓库我还没建,你看着办)”
克隆仓库到文件夹 如果对这个仓库的历史数据不感兴趣,使用--depth n告诉git,别搞这么沉重,我只关心他现在的样子。 不指定文件夹的话、git会默认使用master自动创建。 git clone --depth 1 git@xx.com/sth.git folder
git pull git@xx.com/sth.git folder
“帮我把sth的最新的代码搬过来,放在我仓库的folder文件夹里就行。(我喜欢的就是我的)”
从仓库拉取数据
git add file1 file2 file3
“这几个文件以后麻烦多照顾啦。”
让仓库追踪文件。 添加追踪之后,每次文件变化都会被git检查。 git add . (自动添加全部未跟踪的文件)
git status
“魔镜魔镜告诉我,我都对这些代码做了什么修改呀?”
显示当前的文件状态。
git commit
“那就让来我告诉你,这些文件的修改都有什么非同凡响的意义。”
标记当前变化的注释 命令行中需要单独输入commit的具体内容,输入完成后保存,如mac使用 shift ; 然后 wq。
git branch branchName
创建一个分支,意思是: “hi git,把现在的代码库做个时空胶囊,名字叫branchName”(记得单机游戏的存档吗?) 创建完分支,我们可以随时回到当时那个状态,当然也可以在那个时空胶囊的基础上继续发展、产生新的历史~~
git checkout branchName
进入某个分支,意思是:“请把我带回到branchName的时候,我要去创造那个时空的代码啦。” 主分支默认叫master 回到主线使用 git checkout master