一般做一个私人的项目,不希望开源的,是不会放在GitHub上的,这个时候我们需要建里一个自己的Git远程服务器,方便小组成员开发。

这里以Centos云服务器为例:

第一步

如果自己的服务器没有git账号,可以先配置一个git账号(当然不用git账号也可以)

$ sudo useradd git
$ sudo passwd git 123456 //设置git账号的密码

第二步

创建一个git仓库

$ mkdir /git
$ cd /git
$ git init --bare test.git

这里要说一下git init 和git init –bare 的区别:

git init 创建的仓库下 test目录是这样子的

而使用 git init –bare 创建的仓库test2目录是这样子的

可以看到,git init 是多一个.git 文件夹,而git所有的文件都是.git文件夹下,而git init

–bare 则是将git的文件直接放在仓库根目录下。

所以git init –bare 创建的仓库是裸仓库,没有项目的源文件,只有git的文件,这个仓库test 是不能执行git的命令,没有git add ,git commit 等等。你也无法修改编辑项目的文件。所以他只是一个共享的储存空间而已。

而git init 创建的普通仓库,里面是有项目源文件的



index.txt, hhh 等等都是你的项目文件。所以git init 创建的普通仓库是有工作空间的,就是work-tree ,而git init –bare是没有工作空间的。

这里还要注意,我们一般使用git init –bare 比较好,git init 有两点不好:

1.因为使用git init 创建的仓库是可以用git操作的嘛,如果当前master正在被用户操作,那么分支如果 git push master:master 那么就会爆炸,上传不上去。master不能同时被两个人操作,对吧。

2.分支push到远程仓库之后,我们在仓库里是没有办法看到最新的内容的,必须要

            git reset --hard

执行这个命令,在仓库的目录下,也就是工作区,才会更新,看到最新修改的内容。

git reset –hard 是撤回到历史版本,本地源码会变成上一个版本的内容。每次更新都要

执行。

**在用git init 创建的仓库的时候,你git push 会遇到

! [remote rejected] master -> master (branch is currently checked out)**

需要运行

 git config receive.denycurrentbranch ignore

这个是允许接受远程文件。

有时候push不上去,是因为文件夹没有权限,需要chomd 7777 文件夹

好了回到正题:

第三步

创建git用户

    $ sudo chown -R git:git test.git

这里说明一下,为什么要创建git用户,因为在远程分支,你是用git账号进行提交的,如果你的仓库文件的用户不是git的话,是root用户或者别的用户,那么你git push ,它是不允许的,因为你的git用户没有权限。你可以给这个文件创立git用户,或者修改文件夹的权限为所有用户都可以更改

第四步

我们就可以远程,直接git clone了。

    git clone git@139.196.126.76:/git/test.git

然后就可以上传文件,下载文件啦。

搭建完Git远程服务器,那小组成员一般是怎么用Git开发的呢?

下一篇会作介绍:

http://blog.csdn.net/Dacc123/article/details/78112166

Git 使用篇二:搭建远程服务器的更多相关文章

  1. Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库

    Android基础新手教程--1.5.2 Git之使用GitHub搭建远程仓库 标签(空格分隔): Android基础新手教程 本节引言: 在上一节中.我们学习了怎样使用Git.构建我们的本地仓库.轻 ...

  2. Git 使用篇二:小组协作开发

    上一片搭建了git远程服务器,那么小组成员在使用git开发的时候都有什么要注意的. 第一步: 首先每个小组成员,在自己本地建立一个目录,作为工作空间,再去git clone 这个远程仓库: git c ...

  3. git一键部署代码到远程服务器(linux)(采坑总结)

    原来一直使用FileZilla来代码部署,去年使用git,代码版本管理,真TM好用,一起回顾下历程! 一. 代码部署方式及思路: 1. 使用FTP/SFTP工具,上传代码 2. git人工部署.1. ...

  4. .netcore持续集成测试篇之搭建内存服务器进行集成测试一

    系列目录 在web项目里,我们把每一层的代码的单元测试都通过并不代表程序能正常运行,因为这个过程缺失了http管道,很多时候我们还还需要把项目布在iis环境中或者在vs里启动iis express服务 ...

  5. git学习教程二之远程仓库学习

    首先你需要注册一个github用户名,我的github账户是:1654218052@qq.com 由于本地的git仓库和github的仓库是通过SSH加密的,所以我们还需要设置一点东西哦 第1步:创建 ...

  6. git 本地库提交至远程服务器

    1. git init 2. git add . 3. git commit -am "###"      -------以上3步只是本地提交 4.git remote add o ...

  7. Okra框架(二) 搭建Socket服务器

    本文将介绍使用Okra框架帮助开发者快速搭建高性能应用程序Socket服务端. 博主接触的网络游戏(包含但不限于网页, 手机)的服务端通信使用的协议基本上就Socket,Http或是WebSocket ...

  8. svn git 导入本地文件到远程服务器 import

    以前,想要把本地的一个文件上传到svn 或者git 服务器的时候,都要先把服务器上的文件夹down 下来,然后把要添加的文件添加进去,然后提交. 想想都麻烦. 现在我们用import 命令就可以做到, ...

  9. Linux学习之二--搭建FTP服务器

    一.查看是否安装有FTP rpm -qa|grep vsftpd 二.如果没有安装,就安装FTP yum install -y vsftpd 三.加入开机启动 systemctl enable vsf ...

随机推荐

  1. mysql中显示当前数据库下的所有表,包括视图。

    环境说明: mysql版本:5.5.57-log 操作系统:Red Hat Enterprise Linux Server release 6.6 (Santiago) 需求:查看当前数据库下所有的表 ...

  2. MySQL Study之--MySQL普通用户无法本地登陆

    MySQL Study之--MySQL普通用户无法本地登陆       在安装完毕MySQL后,我们通常加入拥有对应权限的普通用户用来訪问数据库.在使用用户本地登录数据库的时候,常常会出现怎么登录也无 ...

  3. Go之并发处理(售票问题)

    老问题:模拟一个售票窗口进行售票 先定义类型Ticket(车票)和Conductor(销售员)--偷懒了,把售票和产票都交给Conductor了 package util import () //-- ...

  4. 解决ora-01034和ora-27101错误

    使用plsql登录oracle数据库,提示如下错误: 定位原因:tnsnames.ora文件中数据库的配置参数有误所致 解决办法:将SERVICE_NAME修改为SID即可

  5. Kubernetes kubectl 命令

    kubectl 命令用来操作 Kubernetes 集群中的资源对象,包括对资源的创建.删除.查看.修改.配置.运行等 命令语法:kubectl [command] [TYPE] [NAME] [fl ...

  6. 安装ubuntu后,你的屏幕尺寸太小,无法设置,该怎么解决

    安装完虚拟机之后,你的Ubuntu可能会在尺寸很小,(这种情况可能有,可能没有) 想要点击设置,选中Display里的分辨率下拉框,但是却因为这个窗口太大,无法点击apply按钮.悲剧啦!!! Ctr ...

  7. nodeJs学习过程之一个图片上传显示的例子

    目标 1. 在浏览器地址栏输入“http://demos/start”,进入欢迎页面,页面有一个文件上传表单: 2. 选择一张图片并提交表单,文件被上传到"http://demos/uplo ...

  8. codeforces水题100道 第二十三题 Codeforces Beta Round #77 (Div. 2 Only) A. Football (strings)

    题目链接:http://www.codeforces.com/problemset/problem/96/A题意:判断一个0-1字符串中出现的最长的0字串或者1字串的长度是否大于等于7.C++代码: ...

  9. PON系统基础知识简介

    一  PON基础知识 1.1 PON技术概念 PON(Passive Optical Network)即无源光网络,一种基于点到多点(P2MP)拓朴的技术.“无源”指ODN(光分配网络)不含有任何电子 ...

  10. 【python系列】python初识

    前言 Python是一种高层次,解释,互动性和面向对象的脚本语言,Python被设计成具有很强的可读性语言.它采用应用关键字,而其他语言一般使用标点符号,并且具有比其他语言有较少的语法结构. Pyth ...