首先抛出motivation,为什么用git和github?便于自己的开发维护管理备份,便于项目和团队成员共享和协作。举个简单的例子,我们正在开发的BCI系统,如果每一次改动,项目成员之间都需要借助邮件、QQ文件传输或者U盘拷贝等等实现同步和更新,会是一件很头疼的事情,Dropbox能较好的完成部分工作,但git的优势是无可比拟的。
Git是分布式管理控制系统,他的工作原理和入门教程,请移步廖雪峰的教程:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
Github 是一个用 Git 做版本控制的项目托管平台,可以理解成就是一个网站或者服务器网站。如果开始创建自己的仓库(repository),请移步github Helloworld:
https://guides.github.com/activities/hello-world/
如果这些都不想看,也没关系,根据我在以下的说明,你可以先上手,之后再返回来搞清楚具体的原理。首先,原料:
1. Git-2.7.2-64-bit.exe
2. TortoiseGit-2.0.0.0-64bit.msi
百度云链接:http://pan.baidu.com/s/1c2xfjNy 密码:0dm8
下载下来之后。首先git2.7,管理员身份运行,一路default安装。然后tortoiseGit也是一路default。完成之后,下次再看到github的代码,就不用再Download Zip了,而是可以下载同步到本地了。举例,打开这个链接,
https://github.com/beihangld3/hello-world
clone or download绿色按钮,只需要把这个复制下来,在本地找一个想要存放它的地方,右击,git clone,弹出的对话框,刚刚复制的链接就会自动出现在URL那一栏,
待clone下来,进度条全部读完,点击close,本地就克隆了一份代码文件。接下来明确两个概念,
pull是从服务器往本地拉;
push是把本地更新推到服务器;
git里面的操作称为commit。
工作过程举例:
比如我在hello-world里面添加 一个test.txt, 右击hello-world文件夹,git sync,点push,会弹出username for XXX, Password for XXX, 这个好理解,要不然每个人都可以随意修改别人的github里面的东西了。或者你可以直接设置里面设置好自己的github的账号信息。
OK,设置好账号和邮箱,再来一遍,git sync,commit,输入message,勾上本地改动的文件,再点下面的commit,读完条,点close。然后再点push,这样本地的更新就push到服务器了。
与此同时,在另外一台机器上,右击helloworld, gait sync, pull,就OK啦,
另外,Stash save是从啥都没有开始直接同步;还有一种情况就是,我的本地有更改,这个时候我pull的时候会有conflict,告诉我要stash save,这个时候,我勾选好比较重要的,stash save之后,再去pull,就把服务器上面的更新下来了。
Git的使用大家可以慢慢积累经验,相信很快会喜欢上这种工作方式。