作者: 王翔
日期: 2015年5月 13日
进入正文之前,先插播一条消息。
因为这两天学习的知识点比较多,所以回到宿舍后得反复的的学习巩固新的知识,弄完都基本12点多了,但是遗憾的是就这样还是有好多知识点不怎么理解,看来“革命尚未成功,同志仍需努力啊”。两天没写博客了,今天就借着写博客的机会来和大家分享下这两天所学到的东西,基本上就是Git相关的知识。
提到Git可能许多人只是听说过,或者是已经在使用了,有或者根本没听说过。不管是前面提到的哪种情况,希望我接下来分享给大家的Git知识对大家有所帮助,我也是个初学者,有什么不对的地方希望大家提出。
可能已经有好多人已经在想Git到底是什么呢?已经在工作的大家可能会接触到有关Version control 方面的东西。其实Git也是一个版本控制系统,与其他不一样的是它是分布式的, 官方给出的解释是:Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目, Git的读音为/gɪt/, 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。关于分布式和集中式在这就不多介绍了,有兴趣的童学可以去查查资料
简单的说,Git和其他Version control 系统不一样的地方就是,在企业中一个团队在做项目时,为了方便大家同时对项目的代码进行修改,并且将每个人修改后内容合并到一起,不用依赖于对方的版本,在这过程中至少有一个人手中的代码是最新的,让每个人时刻了解每个版本信息的改动,提高软件开发效率。Linus Torvalds 不愧为我们眼中的大神啊,自己需要什么,就去编什么。不知道我有没有能力达到这样的高度。抱歉!扯远了,回到正题
http://git-scm.com/downloads 这是下载的地址,可以根据自己的系统下载
使用以下命令设置你的用户名和邮箱。这个很重要,在你完成某次提交后别人可以根据你的用户信息查看提交纪录。
在command line application中输入:
$ git config --global user.name "YOUR NAME"
$ git config --global user.email "YOUR EMAIL ADDRESS"
"YOUR NAME" 填写你的名字,可以是你GitHub的名字
"YOUR EMAIL ADDRESS" 你注册的邮箱地址
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
你肯定会想,至少需要两台机器才能玩远程库不是?但是我只有一台电脑,怎么玩?
实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。
为了学Git先搭个服务器绝对是小题大作。好在这个世界上有个叫GitHub的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库
首先,登录GitHub网站注册账号
因为https的上传速度较慢,所以我们选择用SSH
由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:https://help.github.com/articles/generating-ssh-keys/ 这里说明设置SSH。
1.初始化本地Git库,就是我们现在你的电脑建立一个虚拟的Git,先在这个虚拟的Git库中对文件操作,然后再push到GitHub
$ git init Initialized empty Git repository in /home/wangxiang/Project/test/.git/
细心的读者可以发现当前目录下多了一个.git
的目录这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了
2.创建一个文件
$ touch git.md
3.创建完文件,这时的文件的状态是untracked(未跟踪),我们要跟踪它的变化
$ git add git.md
跟踪后文件的状态变成staged(预处理态)
如果你想让文件的状态从staged(预处理态)退回到untracked(未跟踪态),输入:
$ git rm --cached
4. 提交暂存区的文件到本地Git库中 ,"-m"后面添加文件变更的描述信息
$ git commit -m “first commit”
提交后的文件变成commited(提交态)
5.我们可以用git log 查看我们的提交历史
$ git log commit 82ff63a6d49e4e9ab2e0948252a92d92a600bb0c Author: Mr-wangxiang <[email protected]> Date: Wed May 13 21:27:31 2015 +0000
6.接下来我们本地Git库推送到GitHub服务器
$ git remote add origin [email protected]:Mr-wangxiang/my-blog.git
7. 最后就是将我们的Git库推送到远程库主分支
$ git push -u origin master
8. 如果我们想看到别人在远程库中对文件的修改,现将文件pull到本地库
$ git pull $ git diff
9. 如果你需要返回上个版本,重置当前的修改,可以使用如下命令
$ git reset --soft HEAD^
这些就是这两天我的收获了,可能不多,但是完全掌握还是要花一定的时间的。
通过这些我们现在应该对Git和对它的用法有了初步的了解,以后我还会对Git的冲突解决和分支操作再给大家介绍。
未完待续............