我在广州做程序猿

在第三篇的结尾本来是说好要写多通道备份的,但是无奈我被安排去做了别的工作,多通道的压力测试任务是其他同事做的。好吧我还没有资格使用万兆网卡的物理机做测试。

所以这一周我做了什么呢?熟悉Git和Minio

简单的介绍一下Git?

Git的创始人Linus Torvalds,没错他就是大名鼎鼎的Linux系统创始人。Git在一开始被创造出来就是为了服务Linux内核开发的。在使用Git之前,全球的Linux开发参与者是在一款名叫BitKeeper的软件上进行代码开发。但是BitKeeper是一款收费软件,这就与Linux开放的理念产生了冲突,大神Linux Torvalds就着手开发了Git。(其实真相是BitKeeper明明已经对Linux社区免费了,但是开发Samba(以后会提到,这是一个很好用的跨操作共享软件)的Andrew视图破解BitKeeper,还被人家发现了。BitKeeper一怒之下收回了免费使用权,Linus Torvalds干脆用了两周时间写了一个软件叫Git来代替BitKeeper。)尽管Git最初是为了辅助Linux开发的工具,但是Git已经发展成为了支持很多其他开源软件项目的社区。

Git的衍生产品-Github

Github 以web形式提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等作为开源代码库以及版本控制系统。作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。GitHub同时提供公共仓库和私有仓库,但如果要使用私有仓库,是需要付费的。对于开源项目而言,GitHub依然是代码托管的首选。

Gitlab - Github_Pro

GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。相较于Github而言,gitlab允许免费设置仓库权限、分享一个project的部分代码、设置project的获取权限、可以设置获取到团队整体的改进进度、通过innersourcing让不在权限范围内的人访问不到该资源。从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。

如何在本地配置好Git

Git的前提:安装ssh

Centos&Redhat: sudo yum install ssh

Debian&Ubuntu:sudo apt-get install ssh

不知道自己是否已经安装了ssh可以通过以下命令查看:

Centos&Redhat:rpm -qa|grep ssh*

Debian&Ubuntu:dkpg -l|greo ssh*

如果只查到openssh-clients是不行的。还要安装openssh-server。

Git的安装:

Centos&Redhat:sudo yum install git

Debian&Ubuntu:sudo apt-get install git

Git的配置:

git config --global user.name "name"

生成ssh-key

ssh-keygen

(可选)在/home/username/.ssh/下会生成一个id_rsa.pub的文件,这是你的链接秘钥。可以通过 sudo gedit /home/username/.ssh/id_rsa.pub来打开这个文件。并把这个文件的内容复制到gitlab上的User Settings里面的SSH key界面。这样以后登录git就是免密操作(十分方便)。

Git常用命令

本地新建仓库:git-clone http:127.0.0.1(example)/project.git项目会复制到 /home/username/manual目录下。

分支查看:git branch带有*标志的分支是你当前所在分支。ps:一般不建议在master分支直接做修改,除非你是这个项目的主要负责人或非常有自信,错误改动会带来灾难性的后果。建议新建分支或在develop /hotfix /feature分支上进行修改。

新建分支:git checkout -b branchname这个新建的分支将属于你之前所在的分支。

初始化:git init在当前目录下新建一个项目

查看状态:git status可以看下哪些文件属于被跟踪的状态,哪些文件是新增的,哪些是被忽略的。

添加文件到缓存区:git add [file]这并不是把代码发布到远程端去了,只是把你做的更新放入缓存区(cache),可以通过git add .来直接上传所有的文件到缓存区。

改名文件,并将文件放入缓存区:git mv [name1][name2]

删除工作区文件,并从缓存区删除:git rm [file]

删除缓存区文件,不从工作区去除:git rm --cached[file]

提交暂存区到仓库区:git commit -m [message]

上传本地分支到远程仓库:git push

取回远程仓库的变化(更新):git pull这是一个很好的习惯,每次git前pull一下,上传之后pull一下。可以少很多麻烦。

.gitinore文件

如果你的project由太多的小文件,或者是你只想上传一部分文件,那么你可以使用.gitinore来实现忽略文件。即git不再对你忽略的路径下的文件追踪(cached)。

用法:在/manual/projectvi .gitinore。逐行输入你要忽略的文件夹或文件。如果你输入了 Output 那么Output路径下的所有文件都不会背追踪。

我学艺不精,尚未接触到更多更复杂的git用法。然而git是一个很实用并且庞复的软件。关于git命令更多的介绍。可以参考以下这两个网站:

https://git-scm.com/book/zh/v2

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

下一期将会介绍minio和分布式存储概念。其实git也是基于分布式存储搭建的。minio又是一个gitlab上的开源私有云项目。minio十分适合postgreSQL和MySQL,以及非结构化数据的存储,例如文件,图片等等。感兴趣的话可以搭个虚拟机下载下来玩玩。寝室里面大家传传学习资料(误)。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180714G03JZK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励