大名鼎鼎的git就不多做介绍了,总之。我们使用git来作为项目的一个版本控制工具,多人开发的项目的时候会轻松很多。

安装git

whthomas@whthomas:~/workplace/gitOne$sudo apt-get install git

Windows下,可以在http://msysgit.github.io/上下载安装包。

同时Windows上也可以执行shell哟!

话不多说,下面我们来配置git的远程仓库 首先下我们需要配置git上我们的用户信息,包括这个用户名称和电子邮件地址,用户名可随意修改,它们用于记录是谁提交了更新,以及更新大家的联系方式。

whthomas@whthomas:~/workplace/gitOne$ git config --global user.name  "whthomas"
whthomas@whthomas:~/workplace/gitOne$ git config --global user.email whthomas93@gmial.com

这里再做一个配置

whthomas@whthomas:~/workplace/gitOne$ git config receive.denyCurrentBranch ignore

好了我们开始架设服务器了 首先为了避免我们的项目和其他的文件相冲突,我们新建一个git用户。

root@whthomas:/home/whthomas# adduser git
root@whthomas:/home/whthomas# su git

我们新建一个文件夹 .ssh,并在其目录下新建一个文件authorized_keys,它被用于存放其他用户的公钥(所有人的公钥都要放在这个文件里面,我们可以使用 >> 的方式,把大家的公钥追加进来。)

git@whthomas:~$ mkdir .ssh
git@whthomas:~$ cd .ssh
git@whthomas:~$ touch authorized_keys

放好大家的公钥之后,我们开始使用git用户新建一个仓库了。

git@whthomas:~$ mkdir res.git
git@whthomas:~$ cd res.git/
git@whthomas:~/res.git$ git --bare init

在另一端用户就可以使用自己新建的仓库加入这个远程仓库中去了

whthomas@whthomas:~/workplace/gitu$ git init
初始化空的 Git 版本库于 /home/whthomas/workplace/gitu/.git/
whthomas@whthomas:~/workplace/gitu$ touch README
whthomas@whthomas:~/workplace/gitu$ echo hello >> README
whthomas@whthomas:~/workplace/gitu$ cat README
hello
whthomas@whthomas:~/workplace/gitu$ git add .
whthomas@whthomas:~/workplace/gitu$ git commit -m "add a README"
[master (根提交) 59d4695] add a README
file changed, insertion(+)
create mode README
whthomas@whthomas:~/workplace/gitu$ git remote add origin git@127.0.0.1:/home/git/res.git
whthomas@whthomas:~/workplace/gitu$ git push origin master
Counting objects: , done.
Writing objects: % (/), bytes | bytes/s, done.
Total (delta ), reused (delta )
To git@127.0.0.1:/home/git/res.git
* [new branch] master -> master

如果push的时候出现错误:

ssh: connect to host 127.0.0.1 port : Connection refused
fatal: The remote end hung up unexpectedly

这是由于openssl服务器没有安装的问题,使用如下命令安装之后就OK了。

whthomas@whthomas:$sudo apt-get install openssh-server 

安装完成之后,我们再次push代码那么一切都可以ok了。

我们可以去另外一个目录下clone项目,检查push是不是成功。

whthomas@whthomas:~/workplace/gitu$ cd ..
whthomas@whthomas:~/workplace$ git clone git@127.0.0.1:/home/git/res.git
正克隆到 'res'...
remote: Counting objects: , done.
remote: Total (delta ), reused (delta )
接收对象中: % (/), done.
Checking connectivity... done
whthomas@whthomas:~/workplace$ ls
gitu res

Ok!  远程仓库搭建成功!这种git服务器搭建方式,非常适合几个人的小型团队协作工作。

附上我们怎么生成ssh密钥。

whthomas@whthomas:~$ ssh-keygen

一路回车键~(当然你要输入密码的话,就不要一路回车了。。。。)

生成的密钥文件会放在用户目录的.ssh目录下。

whthomas@whthomas:~/.ssh$ ls
authorized_keys id_rsa id_rsa.pub known_hosts

id_rsa是我们的私钥, id_rsa.pub是我们的公钥。

Git 远程仓库搭建的更多相关文章

  1. git远程仓库创建及权限管理(一)单个项目

    最近接手公司git权限管理,既然负责此事个人觉得应该深入学习下,不仅为当前工作也为进一步发展.网上查找了一番,找到了完整的教程,所以这里不再一步一步描述,具体链接已给出,本文只对操作过程中遇到的问题的 ...

  2. Centos6.5搭建git远程仓库

    远程仓库搭建 step1:安装git ```yum -y install git``` step2:创建用户git,用来运行git服务 useradd git passwd git //修改git用户 ...

  3. windows 切换git远程仓库地址后 git push 提示Authentication failed

    git切换远程分支: 方法一: git remote set-url origin 你新的远程仓库地址 方法二: git remote rm origin git remote add origin ...

  4. git远程库GitHub

    首先,注册一个GitHub(github.com)帐号,免费获得Git远程仓库 由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置: 第1步:创建SSH Key.在用 ...

  5. git远程仓库

    git远程仓库: 目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作. 你就需要将数据放到一台其他开发人员能够连接的服务器上. 添加远程仓库: gi ...

  6. Git远程操作详解

    Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...

  7. git 远程仓库 轻松创建

    很多时候,为了方面管理我们写的代码,我们采用git 远程仓库来进行管理和备份.防止代码被他人篡改或删除.那如何来进行创建远程仓库呢? 1.我们必须有一个远程服务器端,在这里可以把任意一台电脑作为服务器 ...

  8. Git远程操作

    Git远程操作 // */ // ]]>   Git远程操作 Table of Contents 1 Git远程命令概览 2 Git远程仓库与本地仓库的关系图 3 git clone 4 git ...

  9. Git远程和分支管理

    一.远程       Git是分布式版本控制系统,最重要的优点就是远程仓库托管代码.不用自己搭建一个服务器,在github上面注册一个账户就可免费获取远程仓库.      首先需要先在github上面 ...

随机推荐

  1. [09]APUE:进程关系

    [a] getpgid / setpgid #include <unistd.h> pid_t getpgid(pid_t pid) //成功返回进程组 ID,出错返回 -1 int se ...

  2. 对象的比较与排序:IComparable和IComparer接口

    IComparable和ICompare 接口是.net framework 中比较对象的标准方式,这两个接口提供一个返回值类似(大于0 等于0 小于0)的比较方法,二者区别如下: . ICompar ...

  3. 用ajax动态获取数据显示在highcharts上

    html代码(index.html) <html><head> <meta charset="UTF-8" /> <title>Hi ...

  4. php生成网页桌面快捷方式

    本文将介绍使用PHP生成网页桌面快捷方式的代码,并添加图标及解决不同浏览器保存出现的乱码问题. 我们访问网站时,如果网站的内容很有吸引,一般我们都会使用浏览器的收藏夹功能,收藏此网站. 在浏览器收藏的 ...

  5. Zip压缩和解压缩

    这个功能完全依靠一个第三方的类,ICSharpCode.SharpZipLib.dll,只是在网上搜了大半天,都没有关于这个类的详细解释,搜索的demo也是各种错误,感觉作者完全没有跑过,就那么贸贸然 ...

  6. STM32 使用DMA+DAC+TIMER 输出正弦波

    之前已经简单论述过,根据我个人菜鸟的了解与认识,对之前的知识进行整理回顾: DMA:我的理解就是一个通道,或者是一座桥梁.在静态内存到静态内存,或者外设到静态内存间的一个通讯的通道.建立这个通道的好处 ...

  7. 等比例压缩图片到指定的KB大小

    基本原理: 取原来的图片,长宽乘以比例,重新生成一张图片,获取这张图片的大小,如果还是超过预期大小,继续在此基础上乘以压缩比例,生成图片,直到达到预期 /** * @获取远程图片的体积大小 单位byt ...

  8. java TreeMap用法

    转自:http://huchenqiang90.blog.163.com/blog/static/11250080020101025956498/ 最近工作遇到需要按一个model中不同的列进行排序的 ...

  9. Java中的继承与静态static等的执行先后顺序

    package extend; public class X { Y y=new Y(); static{  System.out.println("tttt"); } X(){  ...

  10. 【记忆化搜索】bzoj1652 [Usaco2006 Feb]Treats for the Cows

    跟某NOIP的<矩阵取数游戏>很像. f(i,j)表示从左边取i个,从右边取j个的答案. f[x][y]=max(dp(x-1,y)+a[x]*(x+y),dp(x,y-1)+a[n-y+ ...