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网站

连接相关:

使用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分支的文件已经存在(此刻服务器端,三个分支都有同样的代码了)

(项目准备工作完)

 

posted @ 2017-08-01 11:42  凯哥吧  阅读(161)  评论(0)    收藏  举报