git是非常方便的版本控制工具,目前网上有很多免费的git仓库可以给我们使用,但是有些时候我们并不放心将我们的项目寄放在别人的服务器上,这个时候就需要自己搭建一个git服务器。

在linux上面搭建git服务器是一件非常轻松的事情,只需要按照以下几步就能完成。为了确保整个过程的顺利,最好新创建一个名为git的账号,再使用该账号进行配置

1.安装git

在linux系统中,git安装只需要简单命令就可以完成,只需要打开终端,输入

sudo apt-get update
sudo apt-get install git

如果已经安装过了的就跳过这一步。

2.创建git仓库

终端进入到用来存放仓库的目录,新建一个文件目录,命名为: <工程名>.git ,比如 project.git , 命令行操作如下:

mkdir project.git

进入到该目录下,初始化git repository

cd project.git
git --bare init

可以看到,在当前目录下自动生成了多个文件

branches  config  description  HEAD  hooks  info  objects  refs

到这一步,git远程仓库已经搭建好了。

3.获取远程仓库地址

远程仓库的地址一般组成的格式是:

<用户名>@<服务器地址>:<仓库全路径>

用户名就是当前登录的账号的名称,比如我当前用的是 git账号,用户名就是git

服务器地址就是远程服务器的地址,比如 120.21.11.21

仓库全路径这个也不难理解,直接在project.git目录下输入pwd,获取project.git的全路径。

比如:

/home/git/gitRepository/pythonServer/project.git

那么整个远程仓库的地址就是:

git@120.21.11.21:/home/git/gitRepository/pythonServer/project.git

这个先记下来。

4.客户端工程初始化

在客户端新建工程project目录,进入该目录,创建README文件,往文件里面随便写一些东西。

mkdir project
cd project
touch README.md
echo "hello" >> README.md

5.客户端git初始化

如果客户端没有安装git的话也可以按照第一步的方式进行安装,安装好了之后,进入到project目录下,建立git本地仓库。

git init

本地仓库初始化提交。

git add README.md
git commit -m "init"

6.本地仓库与远程仓库绑定

故名思议,就是让本地的git仓库和远程的git仓库进行绑定。这里需要用到的是之前记下来的远程仓库的地址,也就是

root@120.21.11.21:/home/git/gitRepository/pythonServer/project.git

命令行的绑定方式是:

git remote add origin git@120.21.11.21:/home/git/gitRepository/pythonServer/project.git

到了这一步绑定已经成功了,这个时候我们已经可以使用git push 和git pull 进行上传和下拉了,但是你会发现使用上传下拉都需要输入一次远程服务器的密码,非常不方便。为了能免密码上传下拉,需要借助ssh协议。

7.生成客户端ssh公钥
git的远程推送功能需要用到ssh协议,linux自带ssh工具,可以很方便地满足我们的需求。

首先确认一下客户端本地是否已经存在ssh的公钥,可以直接输入

cat ~/.ssh/id_rsa.pub

如果返回了一串以ssh-rsa开头的字符串的话则说明之前已经存在公钥了,可以直接将这一串字符串复制下来。如果该条命令提示文件不存在或者是返回值为空的话,则需要创建公钥,只需要在命令行输入:

ssh-keygen

默认直接按回车,就会自动在~/.ssh/ 目录下创建id_rsa.pub,并且生成公钥,此时再用上面的方法,复制公钥。

8.服务端授权ssh公钥
接下来要做的是将客户端的公钥注册到服务端中,打开服务端控制台,输入:

cat "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9+VK1abwzJg+VjxGwpwKnsYU3eBEjXolQKUfKxEAMO9DREvdFrvIF5KhBE9HJTp7CEFcAfgP6xkJdxchQcEUyPyda9mIz6M4OOeuuLcxJcrqqJWTN0Jj78I/kDUZUJZF7bcV4q0CyeZG1fo5ckjxOmFaYkCGcq8vmeuFySFpco71UMkudzclrtGa53AvfmuOP1u96CEud78p2gYrPP5qr9ZYBNM+E290ddGMV61rnEiL7taAsXMGpuCQSbI0/zBJ3YXvN/lJSOVHFSeMFbKv7WDSJFSiBVHXjtcDa5RvzzWaFMBV8+SW4zluhijp6Dvb7pHBaLhLg/JvOixmR1/or OboBear" >> ~/.ssh/authorized_keys 

这双引号里面一大串的就是你之前复制的公钥,整句命令所做的事情就是将客户端的公钥添加到服务端的ssh授权表中。

9.客户端git推送
客户端终于可以进行免密码的上传了(push)和下拉(pull)了,回到客户端project目录下,进行第一次上传,输入:

git push -u origin master

如果最后没报错的话,就说明推送成功了。

10.测试获取

推送上去了,当然也要测试一下能不能获取下来。这个我们可以再建一个新的工程目录,比如:projectCopy

进入到该工程目录,输入:

git clone git@120.21.11.21:/home/git/gitRepository/pythonServer/project.git

如果能正常克隆下来的话,那么就恭喜了,git服务器一整套的内容全部走通了,接下来就可以享受私人的git服务了

转自:https://yq.aliyun.com/articles/53288

11、eclipse提交与下载项目

参考:http://blog.csdn.net/hhhccckkk/article/details/10458159

阿里云 linux搭建git服务器的更多相关文章

  1. 关于阿里云专有网络搭建FTP服务器的深坑

    之前用的FTP服务器都是,随便搭建一下就能用了, 昨天因为服务器的问题,换了个服务器,搭建FTP服务器的时候发现, 搭建的服务器居然只能使用 主动模式访问,改成被动后 无法获取目录, 百度了 各大论坛 ...

  2. 在Linux搭建Git服务器

    搭建Git服务器 https://www.cnblogs.com/dee0912/p/5815267.html Git客户端的安装 https://www.cnblogs.com/xuwenjin/p ...

  3. 腾讯云,搭建Git服务器

    下载安装 git 任务时间:5min ~ 10min Git 是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 此实验以 CentOS 7.2 x64 的系统为环境,搭建 ...

  4. linux搭建git服务器

    服务端配置 1.安装git 2.新建一个用户,只能用来上传代码,而不能通过ssh登录,比如git用户 adduser git chsh -s $(command -v git-shell) git 使 ...

  5. 阿里云上搭建git

    这篇文章我就来介绍一下如何在一台全裸的阿里云主机上搭建自己的git服务器. 1. 安装git 首先安装git,一般而言,现在的服务器已经内置了git安装包,我们只需要执行简单的安装命令即可安装.比如: ...

  6. 阿里云ubuntu搭建SVN服务器

    系统:Ubuntu 14.04 64位 新手注意:连接到服务器之后,默认会在用户文件夹位置“~”,使用cd /命令可以回到根目录.SVN搭在公共的位置比较稳妥. 1.通过apt-get安装subver ...

  7. Linux 搭建Git服务器

    安装Git yum install -y git git --version 创建 Git 用户 sudo adduser git // 设置密码 passwd git 导入公钥 find / -na ...

  8. 阿里云ECS搭建FTP服务器

    一.开始前先开通21端口权限; 二.添加IIS角色; 三.添加ftp用户; 四.步骤如下: 五.用添加在用户登录ftp;

  9. 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器

    一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...

随机推荐

  1. 【WPF】DataGrid的Row样式设置

    引言      在与DataGrid相关的项目中,会有一个比较常见的需求.那就是在根据数据设置行的样式,例如行的背景色或者字体色.我们用到的方法有几个,下面一个个说来. 准备工作     介绍方法之前 ...

  2. Django 基础 路由系统

    Django框架简介 MVC框架和MTV框架(了解即可) MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图 ...

  3. JVM_总结_00_资源帖

    一.官方资料 Java Platform Standard Edition 8 Documentation The Java™ Tutorials Java 8 API 二.精选资料 发布<Ja ...

  4. Codeforces Round #260(div2)C(递推)

    有明显的递推关系: f[i]表示i为数列中最大值时所求结果.num[i]表示数i在数列中出现了几次. 对于数i,要么删i,要么删i-1,只有这两种情况,且子问题还是一样的思路.那么很显然递推一下就行了 ...

  5. ecshop彻底去版权把信息修改成自己的全教程

    前台部分: 一.去掉头部title部分的ECSHOP演示站-Powered by ecshop 1.问题:“ECSHOP演示站”方法:在后台商店设置 – 商店标题修改2.问题:“ Powered by ...

  6. 一道SQL的面试题之联想

    一道SQL的面试题之联想 本人工作在一家小型的民营企业,主要从事业务系统的日常维护,二次开发,菜鸟一枚.周五经理准备面试两个开发人员,据简历,都还比较不错,让经理产生了想法,于是准备了一套面试题目,给 ...

  7. check: 获得所有呗选中的checked标签的元素值 mapArrayElement(arrEles)

    首先引用: <script src="../js/myjs/mapArrayElement.js"></script> 然后在<javascript& ...

  8. 我不知道的promise

    promise在resolve之后 再抛出错误并不会被捕获,等于没有抛出,个人理解是状态改变之后就不会再次改变. 错误具有冒泡的特性,会一直向后传递,直到被捕获为止,但是不会冒泡到全局.跟传统的try ...

  9. DripRoad(点滴之路)

    关于DripRoad DripRoad 意为点滴之路,程序员之路在于点滴积累!是的,这些积累包括技术能力,沟通能力,业务能力等等.   我 我是唐志伟,2009年一个人来上海,就读于上海医疗器械高等专 ...

  10. 【render】partial及其局部变量

    原文:http://www.cnblogs.com/lwm-1988/archive/2011/09/13/2175041.html 1. partial 1.1 把partial作为view的一部分 ...