Git初步配置 ubuntu服务器 windows客户端 虚拟机
最近自己配置了一下Git,虽然网上相关的内容满天飞(ps:大多都差不多,很多都是直接转载,说的也比较乱),但是我还是碰到了很多问题,这里我就把我配置的步骤分享一下,遇到的问题也说一下,新手之间相互学习吧
环境:
ubuntu做服务器,windows做客户端,是在windows上跑的虚拟机,里面运行的Ubuntu
步骤:
1.(在ubuntu系统上)
sudo apt-get install operssh-server openssh-client [这两个软件是用做两个系统间通信用的,如果不安装的话,就连接不上服务器端了]
sudo apt-get install git-core [这个是git]
2.(在ubuntu系统上)
sudo useradd -m git [这个是添加一个用户)]
sudo passwd git [这个是为这个用户设置密码,输入命令,回车,会提示你输入密码,ps:ubuntu输入密码的时候光标是不会做任何相应的反应的,新手可能会认为自己没有输入]
[上面这两步的目的是为了服务器端管理将来的git工程。我们知道linux系统都有一个root用户,也就是最高级的用户,拥有最高权限,由于root用户比较特殊,权限高,在是用中可能会误操作别的用户的内容或系统的一些文件,所以我们linux系统一般都会有一个日常使用的用户,一般不会登陆root用户,日常用户是为了日常操作使用的,所以我们这个地方又创建了一个用户,用户名是git,专门用来处理git相关事务。这样可以更有条理的工作,要是所有的东西都在日常用户或是root用户下,那么工作目录很乱也可能导致一些操作影响到其他的内容]
sudo mkdir /home/git/repositories [这个地方是在刚才我们创建的git的home目录创建一个文件夹,用来保存将来我们的git项目,ps:我们创建一个用户后,系统会在/home/目录下自动创建一个文件夹,那就是这个用户的home目录]
sudo chown git:git /home/git/repositories [这个地方是对刚才创建的文件夹设置它的所有者]
sudo chmod /home/git/repositories [这个地方是设置文件夹的权限,也就是读写执行对于自己所有者的用户,组内的用户,其他用户应该有的权限]
git config --global user.name "myname" [这个地方是向git指定一个用户名,这是因为git要运行,必须要有一个用户名和对应的邮箱,下面是添加邮箱,myname就是你指定的用户名,这个可以随意起]
git config --global user.email myname@gmail.com [这个地方就是指定一个对应的邮箱,随便写一个自己的邮箱就行了]
3.(在ubuntu系统上)
sudo apt-get install python-setuptools [这个地方是安装python,因为接下来我们需要用python进行编译我们的软件]
cd /tmp [这个地方是到临时目录,因为tmp目录下需要的权限比较低,操作方便,一些临时的操作有时候都会在tmp目录下]
git clone https://github.com/res0nat0r/gitosis.git [这个地方是从github网站把gitosis的源码拿下来,gitosis是我们接下来要用的软件]
cd gitosis [执行完上面后,在当前目录下会有一个gitosis文件,就是刚刚下载下来的源码]
sudo python setup.py install [这个地方就是安装gitosis]
4.(在ubuntu系统上)
cd /home/git/repositories [进入到我们刚才创建的仓库目录]
mkdir project.git [创建一个项目的git文件夹,以后项目的代码等东西都会提交到这个文件夹里面,名称一般是以git结尾]
cd project.git [进入到这个文件夹]
git init --bare [这里是初始化这个文件夹成一个git仓库,这是一个空的仓库,里面什么都没有现在,可能会有一些自动生成的配置文件等]
现在我们在ubuntu服务器上安装了必要的软件,也配置好了服务器,下面就是操作客户端,安装相应的软件并配置,令客户端能与服务器连接起来
5.(在windows系统上)
在google搜索“git for windows”,能够找到这个http://msysgit.github.io/,下载并安装。这个是windows上的git客户端
在windows上安装没有太多要说的,有一个地方,安装过程中,有一个“configuring the line ending conversions",这个是配置你的文件是按那种格式换行,我们知道windows下换行是\r\n两个符号表示,linux下是\n一个符号表示,所以在windows和linux间传递数据会有这个问题。程序默认的可能是”checkout windows-style, commit unix-stye line endings",表示程序会做一些自动转换,我们选“checkout
as-is, commit as-is",就是不做任何变化。
6.(在windows系统上)
我们可以在系统的任意地方右击,选择“Git Bash“,然后就会打开一个终端,这个时候我们可以用ssh连接一下ubuntu,看看能不能连得上。
ssh git@192.168.1.1 [这个地方git就是ubunt系统上的git用户,后面的ip就是ubuntu系统的ip,你需要ubuntu系统运行着,并且查看其具体ip,这里就表示我们以git的身份登录ubuntu系统]
如果成功,会提示你输入密码,输入后,就可以登录到服务器了,这就表示可以正常连接。
但是在windows下,登录虚拟机(我用的是vmware)下的ubuntu可能需要一些配置
VMware网络设置采用的NAT方式
Virtual Network Editor->选择NAT->NAT Setting->PortForwarding->Add
Host Port: 22
Virtual Machine IP address:192.168.100.100(IP可以在虚拟机内查到记录下来,表示你要映射到哪个IP)
Virtualmachine port 22
可能遇到的问题
ssh: connect to host github.com port 22: Bad file number
有这么几个问题会导致这个错误
a.Ubuntu服务器可能没有安装ssh-server或是没有启动服务
在Ubuntu上运行ssh127.0.0.1如果出现
connectto host localhost port 22:Connection refused,那就表示没安装或是没启动。
运行 ps –e| grep ssh,查看是否有sshd的进程。如果没有那么就是server没有启动。
运行/etc/init.d/ssh –start进行启动server进程。如果提示没有ssh。那么就是没有安装server
运行apt-get install openssh-server进行安装
b.Windows的22端口没有开启。在防火墙内开启或是关闭防火墙
c.Linux的22端口没有开启。在linux下开启或是关闭防火墙
一般情况下是第一个原因导致的,就是你在ubuntu系统上没有安装ssh和其相关服务,或是没开启ssh服务。因为默认ubuntu是不安装ssh的
如果连接服务器成功的话,那就开始生成你的当前系统的密钥吧。密钥的作用就是服务器端用来判断和区分各个客户端的一个凭证,它是根据你的系统生成的一个独一无二的一串字符,你把保存这个字符的文件发送到服务器端,git就可以根据这个来判断是那个客户端在提交代码或是下载代码,这个客户端有没有权限做这些操作,没有的话就不提供相应的功能。其实也就是你电脑的一个id
生成密钥还是在你打开的Git Bash,运行命令
ssh-keygen -t rsa
然后回车,系统会做一些提示,全部回车同意就行,最后会生成一个保存密钥的文件,看一下生成保存的位置。在windows上一般位置是保存在c:/Users/(你当前用户名)/.ssh目录下,有一个id_rsa(私人密钥,保存好) 和 id_rsa.pub(公共密钥,要发送给服务器,用来辨别你的身份)。你可以打开看一下这两个文件,里面就是一堆字符。把id_rsa.pub拷贝到服务器上。
7.(在ubuntu系统上)
sudo -H -u git gitosis-init < id_dsa.pub [这个地方就是用刚才在windows上生成的密钥对gitosis初始化,也可以不加后面的pub,需要自己手动设置,另外再讲]
sudo chmod /home/git/repositories/gitosis-admin.git/hooks/post-update [这个地方就是更改我们原来创建仓库的文件夹下面,由于上面的初始化,会产生一个gitosis-admin的文件夹,把里面的hooks/post-update文件夹属性改一下]
8.(在windows系统上)
我们找到一个文件夹,在里面右击,选择“git bash”,然后运行
git clone git@192.168.100.100:/home/git/repositories/gitosis-admin.git [这个里面git clone是git的命令,用来从服务器上把一个工程完全的拷贝下来。后面是表示通过git用户从ip为192.168.100.100服务器的/home/git/repositories/目录下,把gitosis-admin.git拷贝下来]
上面是把安装gitosis时的系统默认的一个用来管理其它git的工程clone了下来,你同样可以把后面的工程名字换一下把刚才创建的project.git项目clone下来了
Git初步配置 ubuntu服务器 windows客户端 虚拟机的更多相关文章
- 配置 Ubuntu 服务器
Python: apt install python3-pip sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-get update ap ...
- go git 安装配置与使用 (windows 7 64bit)
go语言安装使用第三方库方式一般采用 go get github.com/.../... 命令.例如: go get github.com/astaxie/beego 1.错误情况一: packag ...
- Ubuntu 18.04 LTS上安装NFS服务器和客户端
NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器.操作系统以及低层传送协议无关的存取远程文件的操作.RPC采用了XDR的支持.XDR是一种与机器无关的 ...
- 在 CentOS8/RHEL8 中配置 Rsyslog 服务器
Rsyslog 是一个自由开源的日志记录程序,在 CentOS 8 和 RHEL 8 系统上默认可用.它提供了一种从客户端节点到单个中央服务器的"集中日志"的简单有效的方法.日志集 ...
- [转载]Ubuntu安装配置 git 服务器和客户端
原文地址:Ubuntu安装配置 git 服务器和客户端作者:ding404 1.配置前准备 服务器:安装ssh server另外还装了gitosis做git的权限管理 sudo apt-get ins ...
- Windows操作系统下搭建Git服务器和客户端。
本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配 ...
- Centos6架设GIT服务,windows客户端使用TortoiseGit加载KEYGEN连接GIT服务器
前几天得空,想起前一阵学了GIT还没好好实践,就在虚拟机中安装测试了一下,并简单记录了CENTOS6中GIT安装,ssh-keygen生成,客户端使用TortoiseGit加载KEYGEN连接GIT服 ...
- centos6.5环境搭建openvp服务器及windows客户端搭建及配置详解
1.环境搭建 说明: vpn client 192.168.8.16/24 openvpn server: eth0: 192.168.8.41 eth1: 172.16.1.10 app serve ...
- Git版本控制之ubuntu搭建Git服务器
Git是一个开源的分布式版本控制系统,可以有效.高效的处理从很小到非常大的项目版本管理.使得开发者可以通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库,也可以将代码提交到Git服务 ...
随机推荐
- CheckSynchronize实现的不必要的复杂
在system.classes单元中,CheckSynchronize在ThreadLock上持续调用TMonitor的Exit和Enter以保护SyncList. 因为代码做的第一件事是换出Sync ...
- OpenSSL包括了8个功能
什么是OpenSSL 众多的密码算法.公钥基础设施标准以及SSL协议,或许这些有趣的功能会让你产生实现所有这些 算法和标准的想法.果真如此,在对你表示敬佩的同时,还是忍不住提醒你:这是一个令人望而生畏 ...
- VS让人纠结的Release和网站一键发布
这篇文章不是讲什么知识点,而是开发过程中遇到的问题,一:希望博友看到后知道的给解释一下:二:自己记录一下,下次有时间好好研究一下. 说实话这个问题已经反反复复好几次了,每次都解决不了,都是已另一种方式 ...
- SYN5301型 毫秒表时间检定仪
SYN5301型 毫秒表时间检定仪 频率记录仪时间记录仪时间频率信号的精密测量使用说明视频链接; http://www.syn029.com/h-pd-76-0_310_6_-1.html 请 ...
- Spring Boot的学习之路(01):缘起
有人说,Spring Boot的出现,让Java迎来了又一春,它是Java应用开发的颠覆者,彻底改变了Java应用开发的模式. 2017年,SpringBoot闯入我的生活, 也让我迎来了又一春 我开 ...
- 原创-使用pywinauto进行dotnet的winform程序控制(一)
pywinauto自动化控制win32的ui的程序,网上有好多的教程.但是操作dotnet写的winform教程,就少之又少.今天我就来分享我的pywinauto操作dotnet的winform的研究 ...
- mini木马c源码
#pragma comment(lib, "ws2_32.lib") #pragma comment(linker,"/subsystem:\"windows\ ...
- 【React】react学习笔记01-概念与基本使用
俺为啥要学这玩意: 家里的杂事好不容易处理完了,开始正式静下心来学习~博主是做后端开发的,js基础不深,之前也是用React写过许多东西了,但是基本上都是用的CV大法,别人的组 件修修改改拿来 ...
- php防注入xss攻击
<?php //php防注入和XSS攻击通用过滤. //by qq:831937 $_GET && SafeFilter($_GET); $_POST && Sa ...
- PATB 1019. 数字黑洞 (20)
一个神奇的数字. 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位正整数,如果我 ...