GitHub[git简介,创建服务器,项目初建的准备工作]
Git简介
kayb1530697775
- Git是目前世界上最先进的分布式版本控制系统
-
Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。
总结git的两大特点:
- 版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题
- 分布式:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。可以自己搭建这台服务器,也可以使用GitHub网站
连接相关:
- 点击查看https://git-scm.com/
- 点击查看https://github.com/
- 更多git命令参见http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
使用github的流程
- 在实际项目开发中,按照如下步骤使用git进行代码管理
- 1.项目经理在开发之初,创建好仓库,上传项目的框架、组员分支
- 2.组员克隆项目框架,同步分支,按分工开发,在分支提交代码
- 3.在需要发布时,项目经理将各分支合并到dev上,再合并到master上
- git将代码开发分成了工作区、暂存区、仓库区,为了能够交换代码还需要有服务器,一般使用github
- git四部分的交互方式如下图

分支
- 每个员工开发期的代码互不干扰,并行开发,则每人使用一条分支
- 项目开发中公用分支包括master、dev
- 分支master用于发布,默认分支,当需要发布时将dev分支合并
- 分支dev开发阶段性的代码合并,每个阶段的工作完成后需要进行一次,控制项目的进度
- 成员分支用于每个项目成员的代码开发,实现不交叉
配置及安装流程
安装
sudo apt-get install git
安装成功后,运行如下命令
git
创建
在项目开始阶段,需要由项目经理搭建项目框架,并上传到仓库
如下操作都由项目经理完成
- 注册github账户,登录后,点击"start a project"
- 在新页面中,输入项目的名称,勾选'readme.md',点击'create repository'
- 添加成功后,转到文件列表页面,点击'create new file'创建新文件
- 填写文件名称为'.gitignore',代码如下,表示项目中的pyc文件不需要被管理,因为这些文件代码是根据py生成的

- 点击'preview'查看预览,点击'create new file'完成创建
添加ssh账户
- 如果某台机器需要与github上的仓库交互,那么就要把这台机器的ssh公钥添加到这个github账户上
- 点击账户头像后的下拉三角,选择'settings'
- 点击'SSH and GPG keys',添加ssh公钥
- 在ubuntu的命令行中,修改某台机器的git配置
vi .gitconfig # 在家目录下执行此操作,如果没有可以自己创建
- 修改为注册github时的邮箱,填写用户名,要求组员的用户名不能重复
[user] email = 注册邮箱 name = github账户名
- 生成git密钥
ssh-keygen -t rsa -C "邮箱地址"
- 公钥为id_rsa.pub
- 私钥为id_rsa
# 进入.ssh目录查看秘钥公钥 cat id_rsa.pub
- 回到浏览器中,填写标题,粘贴公钥

克隆项目
进入首页找到创建的仓库进入之后复制git地址

到你的设备上创建一个文件夹操作命令
git clone git地址
分支相关操作
创建分支
git branch 分支名称 例: git branch dev
切换分支
git checkout 分支名称 例: git checkout dev
将本地的dev推送到远程服务器上
git push origin 分支名称 例: git push origin dev
将本地分支跟踪服务器分支
git branch --set-upstream-to=origin/分支名称 分支名称 例: git branch --set-upstream-to=origin/dev dev
创建并切换分支
git checkout -b 分支名称 例: git checkout -b kayb
查看所有分支,当前分支前标记为星*
git branch
查看分支
删除分支
git branch -d 分支名称
删除了,找不回来哟
搭建项目框架
注意到此步应该有三个分支,dev,master ,kay(自己的分支)[以下的操作开始时在自己的分支上]
在克隆的目录下创建项目,使用django框架
django-admin startproject dailyfresh
将文件代码添加到暂存区
git add dailyfresh/
将暂存区提交到仓储区
git commit -m '搭建框架'
当前文件在kayb分支上,所以推送kayb分支
git push origin kayb
推送分支,就是把该分支上的所有本地提交推送到远程库,推送时要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支
推送成功后服务器端已经存在该文件了
将kayb分支合并到dev分支
git checkout dev git merge kayb
推送dev分支
git push origin 分支名称 例: git push origin dev
将dev分支合并到master分支
git checkout master git merge dev
推送master分支
git push origin master
在浏览器查看master分支的文件已经存在(此刻服务器端,三个分支都有同样的代码了)
(项目准备工作完)

浙公网安备 33010602011771号