• 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 755 /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下换行是 两个符号表示,linux下是 一个符号表示,所以在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 755 /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下来了

  • 相关阅读:
    event.preventDefault() 火狐下没有作用。
    输入框禁止键盘输入数字意外的字符
    js遍历数组重复值和数组中对象重复值
    js获取30、X天前得时间
    docker 命令详解
    右键禁止浏览器自带的右键
    Kncokout之绑定事件三
    转:Maven的默认中央仓库以及修改默认仓库&配置第三方jar包从私服下载
    异常: java.security.InvalidKeyException: Illegal key size
    转:Java并发编程:深入剖析ThreadLocal
  • 原文地址:https://www.cnblogs.com/studywithallofyou/p/9020960.html
Copyright © 2020-2023  润新知