全过程Git教程-适用于小公司
最近全过程
这个词特别火,比如有全过程民主
。有朋友想让我分享一下全过程Git教程
,就是在公司里的Git真实的使用案例,而非课堂中的应试教育。我一般很少写比较全面的教程,一般只写对某一个技术难点解决的过程和思路,因为我是小毛驴拉磨没有长劲儿
,对大而全的东西不怎么感兴趣。但既然网友提到这个需求,我就尝试写一下,不足之处请反馈。
区别
应试教育和工作实际经验 |
其中红色是应试教育,实际工作中不同岗位需要掌握的程度不同,没有人会把有限的生命用在掌握低频操作上。除非他的人生只有掌握Git这一件事。
我会为每个步骤标注上高频
和低频
操作,如果是高频
则需要程序员掌握,如果是低频
操作,建议代码版本管理负责人(技术主管)掌握即可。
Git服务器选择(低频)
Git服务器 | 优缺 | 备注 |
---|---|---|
GitHub | 完全在外网,方便快捷,支持图形化操作 | 免安装 |
GitLab | 可以内网部署,支持图形化操作 | 内网一键安装 |
其它 | 不建议选择,现在就是图形化Git的时代 |
下面以gitlab为例子:
GitLab |
我记得我2013年装gitlab
的时候,还需要自己配置mysql
,全都不熟悉,生生装了两周才装成功。现在gitlab
采用了docker
容器技术,和系统中的软件不相互干扰。半个小时就可以安装好了。
Git客户端(低频)
Git客户端我真正使用的组合如下,以下都会安装,每个用处不同:
Git客户端 | 优缺 | 备注 |
---|---|---|
命令行 | 命令行是处理一些更低层操作 | |
Git Gui | 安装后可以自动拥有了Git命令,可以进行命令操作 | |
Github Desktop | 方便查看差异选择要提交的文件,可以做到免输入命令 | |
IDEA/AS/Xcode自带Git插件 | 和开发IDE结合比较紧密,但易用性来讲,不如上用的 |
生成和上传公钥(低频)
电脑的公钥,类似生活中的指纹。生成公钥并上传到Git服务器上,这一步用现实生活中的例子来描述,好比公司行政给你录门禁指纹,能让你自由出入公司。
生成指纹
你手上的指纹是天生自带,但是电脑不是,需要先生成。在桌面
右击打开Git命令行,如下以下命令生成公钥
ssh-keygen
然后敲两次回车之后就可以了,使用cat ~/.ssh/id_rsa.pub
查看到类似乱码一样的东西。
这个就是你的电脑的“指纹”了;
录指纹
一般是行政小姐姐指导你去门禁那里输入管理员密码然后开始录入,门禁就能识别你的指纹了。在程序员电脑上帮他生产公钥之后,打开安装的Gitlab,将公钥添加进行之后,该用户就可以进行推拉代码了。
clone (高频)
克隆代码仓库,员工在公司项目中几乎用不到。但是一般需要从GitHub上下载Demo来抄,所以还是要掌握。主管还要掌握如何clone带有子模块的仓库。
add (高频)
这个算是高频中的No.1,修改完代码后第一步需要做的就是add
,但是这个命令最容易出问题。因为工作使用
和学习时是反着的,类似学车时双手握方向盘,实际老司机都是单手握。一定不能用git add .
或者GitHub Desktop
中的全选提交。一定要一个一个选出自己必须提交的文件,而不是都全部提交。
commit (高频)
这一步一般和add
混合为一步,描述内容一般要求和注释一样,不能词不达意。当然实际中也有只输入1
当为描述就commit了。
git_add_commit |
比如写此博客也是使用的git管理,注定不会有人和我合作,所以描述就可以写得随意一些。比如我写了1
简单的提交描述 |
push(高频)
推送是将本地代码推到远程仓库上;如果你使用Git管理的博客,那就理解成发布
。
pull(高频)
拉取并合并代码,改代码之前先拉取一下。
submodule (低频)
子模块,一般程序员不需要管理,由主管管理。
gitignore(低频)
忽略文件,一般程序员不需要动此文件。
其它
如果代码合并冲突了,一种方案是处理冲突;另一种是回退git reset --hard xxxxx
。我用得后者更多,因为我知道一般是程序员没有pull
代码就开始修改造成的,我会让他重新提交。
不固定非得使用命令行还是图形化客户端,比如我能准确使用上面描述的每个命令,但在工作中也不会全部使用命令,40%使用命令,60%使用图形化,两者相结合。