文档章节

git 搭建 及 使用

刘小米_思聪
 刘小米_思聪
发布于 2014/07/08 22:06
字数 2129
阅读 750
收藏 3

背景简介

CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?

        集中式版本控制系统,版本库是集中存放在中央服务器的,开发者要先从中央服务器取得最新的版本,然后开始coding,完事了把自己的新版本推送给中央服务器。集中式版本控制系统最大的毛病就是必须联网才能工作。

        分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这 样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改 了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

        和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

        在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可 能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换” 大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

        当然,Git的优势不单是不必联网这么简单,后面我们还会看到Git极其强大的分支管理,把SVN等远远抛在了后面。

安装 git

    如果你用Debian或Ubuntu Linux,通过一条“sudo apt-get install git”就可以直接完成Git的安装,非常简单。

创建版本仓库

    版本库又名仓库repository,可以理解为目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

$ cd mygit
$ pwd

注意: linux中输入的密码一般是不显示的,因此你输入密码直接按回车即可.

第二步,通过git init 命令把这个目录变成Git可以管理的仓库:

$ git init

文件添加到本地版本库

编写一个文件, 例如 myfirst.txt (它必须放在我之前创建的mygit 的目录下)

第一步,用命令git add 告诉Git,把文件添加到仓库:

$ git add readme.txt

注意: 没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。

第二步,用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "wrote a myfirst file"

这里有可能会报错:

** Please tell me who you are.

Run

   git config --global user.email "you@example.com"

   git config --global user.name "Your Name"

to set your account's default identity.

这是由于之前没有使用 git config 指定用户名和电子邮件地址,因此这里会报错,我们只需再次设置下即可

$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com

这时再次用命令git commit告诉Git,把文件提交到仓库就对了:

$ git commit -m "wrote a myfirst file"

______________________________________________________________________________________________________

多人协作的版本控制器

第一步: 搭建一个git服务器

    开发者可以自己搭建一个git服务器,也可以用github作为我们的服务器.

    下面我介绍一个简单的方法,就是用github作为我们的服务器,这里我们就要注意了,github的服务器免费的就是公开的,也就是说你传上去的代码就是开源的,如果你想要拿到一个私密的帐号就要付费啦.如果您是做公司的项目,受到知识产权的约束那么您还是要慎重哦~

    言归正传,下面申请一个github,填上用户名,邮箱,密码就注册成功了. 记得去你的邮箱确认激活一下帐号~申请完之后您就可以点击右上角的 "+" create a repositor  新建一个仓库,这个仓库将是你的远程仓库,你和你的队友就可以把代码放在这里咯~一定要记住您的这个远程仓库的地址, 例如我的是git@github.com:xxxxxx/xxxxx.git.

第二步: 队友们协作起来

    假设我们组有两个人,三个人或者更多人同理~

    队员一:在自己的ubuntu上首先要安装git,并且拥有一个本地的仓库,这一步在本文的上面部分已经介绍过了,按照做就可以了.然后重要的是生成你的公钥ssh, 指令是:

$ ssh-keygen -t rsa -C "scliu168@163.com"

    这里的邮箱写成该队员的邮箱. 然后记着一路回车直到完成.我们做这一步的目的就是为了使该队员获得一个公钥ssh,该公钥添加到github的公钥列表里才能证明你是要一起协作的队员之一.那么如何复制到ssh的内容呢?我们用上面的指令生成的几个文件是不可见的,对,我们要用到$ls  -a可以看到所有的文件,包括隐藏文件,然后lv 一下id_rsa.pub文件即可看到里面的内容,复制下来,具体如下:

$ cd .ssh
$ ls -a
  id_rsa, id_rsa.pub
$  cat id_rsa.pub > d:ss.txt

最后一句把id_rsa.pub重定向到d盘的目录下的新文件,因为.pub的文件可能打不开。不过你也可以直接点击计算机进入该文件所在的目录下,用记事本打开该文件看。

在我们github账户的网页首页,右上角有一个Account settings,点击进去, 左边列表有一个SSH key ,点击, 在右边就出现了add SSH key, 那么我们即可将刚才复制下来的队员一的ssh的内容粘贴进去,title随便填写.

    那么队员二,也是同样的做法,在本地输入指令生成自己的ssh,并且添加到github上.

    现在万事俱备,只欠东风~ 那就是两个队员之间可以给github上的远程仓库push文件,也可从远程仓库上克隆文件,为了方便大家的理解,我这里介绍一个简单的场景:

    队员一给远程仓库上传文件

    先将你的文件添加到本地仓库,这个本文的前面部分讲过了,git add, git commit,还记得吧

    然后再将本地仓库的文件push到您的远程仓库上去,记得下面的远程仓库地址是您自己的地址

$ git remote add origin git@github.com:xxxxxxx/xxxxxx.git
$ git push -u origin master
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (19/19), 13.73 KiB, done.
Total 23 (delta 6), reused 0 (delta 0)
To git@github.com:michaelliao/learngit.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

    队员二从远程仓库克隆文件到本地

    cd 进入到一个你想要将克隆来的文件放置的目录,然后执行下面的指令,就可以克隆下来了~

$ clone git@github.com:xxxxxx/xxxxxx.git

    __________________________________________________________________________________________________________________

    还有更多关于git的使用, 您可以看看下面这个教程,讲的很好:

    www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000



© 著作权归作者所有

上一篇: git 资料
刘小米_思聪
粉丝 58
博文 60
码字总数 43955
作品 0
西安
其他
私信 提问
git文章列表

关于gitlab默认clone协议 Git实现从本地添加项目到远程仓库 翻翻git之---一个简单的标签控件 LabelView (随手发了两张小宝宝的玩耍照) Git 项目推荐 | Java 版微信普通号机器人 翻翻git之---...

d_watson
2016/04/20
27
0
在 VPS 上搭建 Hexo 博客,使用 Git 部署

摘要:因为 hexo 的搭建和使用与其他博客程序不同,而且搜索到的很多结果都是在 Github 上搭建 hexo 的教程。于是就有很多朋友问我 VPS 也可以搭建 hexo 吗?刚好前几天在迁移博客的时候也查...

Viosey's Blog
2017/12/20
0
0
Github使用教程(一)--搭建Github环境

Git是一个分布式的版本控制系统,最初编写用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功。Github目前已经有100多万的开发者,并且对于公共项目的托管免费。Github使得...

大道无形
2014/05/07
150
0
hexo搭建在gitpage上的博客重新搭建

在自己的机子上使用了hexo搭建了gitpage,并且代码提交到了github,突然有一天有需要重新clone处理一下搭建的gitpage,这个时候我们需要的是再原有的基础之上写文章,什么都不变。 为了这个目...

cocoi
2015/05/30
1K
2
Ubutun 16.04安装git服务器

GitHub就是一个免费托管开源代码的远程仓库。既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。本文演示如何使用Ubutun 16.04搭建一台git服务器...

hey_heihei
2018/03/08
38
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
50分钟前
4
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
6
0
从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
5
0
程序性能checklist

程序性能checklist

Moks角木
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部