在现代的生活中,Git成为大多数程序员生活工作中的一个不可缺少的元素,并不仅仅因为它是一个优秀的版本控制程序,它和GitHub结合在一起使他的影响力倍增,GitHub的庞大用户群使‘开源’更加方便,对于开源的代码,每一个程序员都有机会从中学习,并提交自己对代码的修改或建议。对于参与进来的程序员来说,这是一个非常不错的提升机会,而对于代码的拥有者来说,能够极快的修复代码Bug和改进版本。一个两赢的结果,使得GitHub快速的流行开来
来说说Git,Git是一种分布式版本控制程序,和其他集中式版本控制程序有很大的区别。
首先从文件的修改控制上面看,其他版本控制器容易造成在一个程序员编写一个文件的时候,造成一个文件的锁死,导致其他人员无法进行修改和添加,导致时间上的耽误,Git允许多个人员同时操作一个文件,能够极大的提升了工作效率。
在上传时自己的文件或代码时,Git会告诉你这个版本是不是最新的版本,如果不是最新的版本,会让你将最新的版本下载,并将自己的修改添加到最新版本中,这样,在你上传以后,你的机器和服务器上面的程序都是最新版本的。而其他一些版本控制器,只能保证在服务器上面的程序是最新版本,而且在上传时,会上传你修改的整个文件,将占用极大的带宽和存储,而在Git中,除了第一个人上传,后面增删的版本仅仅上传修改的部分,大大的减少了带宽和存储的压力。
作为一款分布式版本控制程序,它的每一台主机,都可以在服务器出现故障的时候,用来替代服务器,来最大程度的减少损失,在服务器修复后,可以很快将最新版本的文件提交到服务器上,使服务器正常工作;而集中式版本控制程序在服务器出现故障的时候,并不能很快确定用户手中的版本,也不能对其进行管理,如果失去服务器很长时间,版本的整合会变得非常困难,从而造成巨大的损失。
Git在最开始使用的时候需要进行一些简单的设置,首先,需要配置本地的Git设置。
打开Terminal终端,
使用 $ git config --global user.name "username" 来配置用户名。
使用 $ git config --global user.email "E-mail address" 来配置邮箱。
当然还有其他一些设置需要配置,如自己喜好的文本编辑器等。。。
但执行完这两步后,你就可以开始着手在GitHub上面的配置了,在GitHub上面有非常详细且人性化的配置教程,给与新加入的用户以极大的支持,你甚至可以免费学习一些简单的GitHub操作。
首先,你要先做好本地到服务器之间的连接,你可以选择在本地创建一个ssh key,这个密钥创建成功后,你通过本地和服务器连接时,便不需要每一次都输入密码。
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
这个是GitHub给出的配置连接的Git代码,你所要做的,仅仅是执行它并且依照他的提示在上面输入的你用户名和密码。
通过这两步的操作,如果最后没有提示错误,你的本地ssh key就创建成功了,但还差最后一步,你的本地ssh key需要得到GitHub网站的许可,这是一验证,也对你的代码是一种保护,如果有人对你的电脑进行非法入侵,在你及时发现,并删除网络上的ssh key之后,其他人就无法通过你本地存储的账户和密码对你GitHub上的文件进行操作。
通过用 $ less /Users/you/.ssh/id_rsa.pub 可以查看你本地的ssh key的具体信息,将它复制下来。
进入GitHub的官网,登陆你的帐号,打开里面的设置,你会在Personal settings中发现一个叫做 SHH keys的设置,将你刚刚复制下来的key信息添加到设置里面,完成了这一步,你需要做一个验证,因为之前并没有连接到服务器,所以也不知道你在本地的配置是否正确,接下来可以执行这一步操作。
$ ssh -T [email protected] 这一步操作会连接到GitHub服务器上面,验证你的本地信息,如果最后出现 "Hi username! You've successfully authenticated, but GitHub does not provide shell access."
那么恭喜你,你已经基本上完成了你在GitHub的配置!下面,你可以进行你的第一个项目了。
首先,在控制台上面进入一个你做好的工作目录,或者使用
$ mkdir work
来创建一个新的目录,下面,你需要初始化这个目录,告诉git这个目录归你管!但你要注意,git会忠实的执行你的命令,它会将这个目录下的所有子目录和文件都纳入他的管理,所以,你在初始化仓库前,需要对你的目录进行确认,确认你的目录下没有不需要的文件,以免之后造成不必要的麻烦。
使用$ git init 命令来初始化仓库,初始化仓库后,在这个仓库中和生成一个.git的隐藏文件,git会识别到这个目录,并且根据里面的文件配置仓库。
这时,你可以在目录中创建你的第一个文件,README.md,这个文件会让你的网络仓库默认显示这个文件内容,来对你这个网络仓库进行说明。
你在该文件中更新好内容后,可以开始使用git工具来对这个文件进行上传工作。
首先进入这个目录下,使用 $ git status 命令来查看git的状态,这时,git会提示你,有一个Untracked files(未被跟踪的文件),也就是指这是一个新文件,git还没有开始追踪它,使用$ git add file可以将该文件添加到你的预处理区中,这时你使用 $ git status 命令来查看状态,你就会发现,他成功的添加到预处理区域,这时你可以决定保存所有的更改,还是取消这个文件。
使用 $ git commit -m '这是一条备注信息' 可以确认所有的更改。
使用 $ git rm --cached 'file' 可以移除这个文件,这时查看git的状态,就会发现,这个文件已经变成未被跟踪的文件。
好了,当我们最终修改好这个文件以后,我们就可以开始连接服务器,并开始提交了。
在GitHub上面获取到你所需要的网站链接,由于刚刚我们配置了ssh的key,这时我们选择ssh的方式提交。(net中填写在服务器上获取到的网址)
$ git remote add origin <net>
下面我们就可以把本机上的文件 README.md上传(push)到GitHub上面了。
$ git push -u origin master
这里的push命令就是将本地文件上传至GitHub,origin master说明当前这次提交是主分支上进行的,-u是指记住这个上传分支,下次使用 git push 的时候就会默认为以主分支上传。
到这里,你便完成了你第一个GitHub项目。
这时你会发现,你目前并没有用到Git的核心,版本控制,因为你目前完成的操作太简单,并不需要什么复杂的操作,但学习这一点远远不够,你需要懂得更多的操作来使用这个软件,而不仅仅停留在上传文件阶段,想要提升自己,codeschool是一个不错的选择,里面有一些免费的Git操作教程,但学完免费教程并不能给你提升太多,但它可以引领你走进这个大门,让你意识到这里有很多奇妙的东西,但具体有什么还需要你自己付出努力。
这是我踏上GitHub的第一步,这里有很多东西都令我心驰神往,希望在GitHub上面,自己能奉献更多,得到更多。