精华内容
下载资源
问答
  • 如何搭建自己的git服务器
    千次阅读
    2019-11-02 15:18:43

    git是什么?

    git是目前世界上最先进的分布式版本控制系统。出自linux之父之手

    SVN与Git的区别?

    SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
    Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

    在linux上搭建git服务器

    1. 服务端安装git
      本次案例我使用的linux系统是centos7,windows10
    [root@localhost ~]# yum install git
    Loaded plugins: fastestmirror
    Determining fastest mirrors
    base                                                                         | 3.6 kB  00:00:00     
    epel                                                                         | 5.3 kB  00:00:00     
    extras                                                                       | 2.9 kB  00:00:00     
    updates                                                                      | 2.9 kB  00:00:00     
    (1/4): extras/7/x86_64/primary_db                                            | 153 kB  00:00:00     
    (2/4): epel/x86_64/updateinfo                                                | 1.0 MB  00:00:00     
    (3/4): updates/7/x86_64/primary_db                                           | 2.8 MB  00:00:00     
    (4/4): epel/x86_64/primary_db                                                | 6.9 MB  00:00:00     
    Package git-1.8.3.1-20.el7.x86_64 already installed and latest version
    Nothing to do
    [root@localhost ~]# git version
    git version 1.8.3.1
    
    1. 客户端安装git
      windows客户端下载git
      小乌龟下载地址
      安装完毕后鼠标右键菜单中会有git Bash,git GUI 等选项,打开git Bash设置用户名邮箱
      因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
      每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改。如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。
      打开git bash
      在这里插入图片描述
      如果想要检查你的配置,可以使用 git config --list 命令来列出所有 Git 当时能找到的配置。

    2. 创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码

    [root@localhost ~]# useradd git
    [root@localhost ~]# passwd git
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    #禁止git用户ssh登录
    [root@localhost ~]# vim /etc/passwd
    git:x:500:500::/home/git:/usr/bin/git-shell
    
    1. 将客户端公钥添加到服务器
      客户端生成ssh私钥和公钥,打开windows的git bash,输入ssh-keygen -t rsa -C “任意备注”,生成ssh私钥和公钥
      在这里插入图片描述
      此时 C:\Users\用户名.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub
      id_rsa 是私钥
      id_rsa.pub 是公钥

    创建 /home/git/.ssh/authorized_keys文件存放ssh公钥
    在 /home/git/ 下创建目录 .ssh

    [root@localhost git]# chown -R git:git .ssh
    [root@localhost git]# chmod 700 .ssh
    [root@localhost git]# touch .ssh/authorized_keys
    [root@localhost git]#chmod 600 .ssh/authorized_keys
    

    将客户端公钥id_rsa.pub文件的内容写到服务器端 /home/git/.ssh/authorized_keys 文件里
    5. 创建版本库
    随便找个文件夹

    [root@iZwz9ifm754y5p5n4kw6zlZ 0242]# pwd
    /www/wwwroot/git/0242
    [root@iZwz9ifm754y5p5n4kw6zlZ 0242]# git init --bare 0242.git
    Initialized empty Git repository in /www/wwwroot/git/0242/0242.git/
    [root@iZwz9ifm754y5p5n4kw6zlZ 0242]# ll -al
    total 12
    drwxr-xr-x 3 root root 4096 Nov  2 18:36 .
    drwxr-xr-x 3 root root 4096 Nov  2 18:32 ..
    drwxr-xr-x 7 root root 4096 Nov  2 18:36 0242.git
    

    git init
    该命令将创建一个名为 .git 的子目录,是隐藏的,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。
    git init --bare xxxx.git
    这样初始化的仓库并没有.git目录,只有.git目录下的文件。
    不使用–bare选项时,就会生成.git目录以及其下的版本历史记录文件,这些版本历史记录文件就存放在.git目录下;而使用–bare选项时,不再生成.git目录,而是只生成.git目录下面的版本历史记录文件,这些版本历史记录文件也不再存放在.git目录下面,而是直接存放在版本库的根目录下面
    把生成的仓库文件所有人改为git用户

    [root@iZwz9ifm754y5p5n4kw6zlZ 0242]# chown -R git:git 0242.git
    [root@iZwz9ifm754y5p5n4kw6zlZ 0242]# ll -al
    total 12
    drwxr-xr-x 3 root root 4096 Nov  2 18:36 .
    drwxr-xr-x 3 root root 4096 Nov  2 18:32 ..
    drwxr-xr-x 7 git  git  4096 Nov  2 18:36 0242.git
    [root@iZwz9ifm754y5p5n4kw6zlZ 0242]# 
    
    1. 客户端克隆远程仓库
      windows用小乌龟
      在这里插入图片描述
      linux用命令行
      git clone git@xx.xx.xx.xxx(ip地址):/www/wwwroot/git/0242/0242.git(文件目录) [本地目录]
      克隆成功
      在这里插入图片描述
      在该目录下的文件都可以被版本库所管理
      需要提交代码的时候只需提交(git add)+添加至本地仓库(git commit) +推送至远程仓库(git push)即可
      新建test.txt文件测试是否能推送成功
      在这里插入图片描述
      为了方便管理,作者日期备注等最好填写完整,然后把作了改动的文件打钩,点击提交
      在这里插入图片描述
      提交后再点击推送(可多次提交后再一次性推送)
      在这里插入图片描述
      推送成功,若推送失败,请查询 第四步 与 仓库文件权限
    2. 到一台新的服务器查看本地提交的文件是否已成功同步到远程库
      git clone git@远程仓库IP地址:远程仓库文件目录 本地仓库目录
    [root@iZj6ccn4rzv6zts66ne4btZ sl.baidu.com]# git clone git@xx.xxx.xxx.xxx:/www/wwwroot/git/0242/0242.git 0242
    Cloning into '0242'...
    The authenticity of host 'xx.xxx.xxx.xxx (xx.xxx.xxx.xxx)  ' can't be established.
    ECDSA key fingerprint is SHA256:W9f3HJap6HEGlbH61hbdxxKR3+c7c1oQmojREZSD9lI.
    ECDSA key fingerprint is MD5:69:e7:85:51:ea:b0:34:de:de:0b:57:33:48:2c:41:24.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'xx.xxx.xxx.xxx' (ECDSA) to the list of known hosts.
    git@xx.xxx.xxx.xxx's password: 
    Could not chdir to home directory /home/git: Permission denied
    remote: warning: unable to access '/home/git/.config/git/attributes': Permission denied
    remote: Counting objects: 3, done.
    remote: Total 3 (delta 0), reused 0 (delta 0)
    Receiving objects: 100% (3/3), done.
    

    在这里插入图片描述
    克隆成功,如果克隆失败,可能是该服务器公钥未加入git服务器authorized_keys文件

    [root@iZj6ccn4rzv6zts66ne4btZ .ssh]# ssh-keygen -t rsa -C "随便填"
    [root@iZj6ccn4rzv6zts66ne4btZ sl.baidu.com]# cat ~/.ssh/id_rsa.pub 
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2jJXJOXoZpD0F1jlGTOrnSt22TWZCHTMeNEPdEV3rKT+THSe74yAhBN3qNlXbNAPp4iF7U3Aykbh2is332Cbf+R9NKCQ6t8/RucE348sKaQhv4Pok9IFFjeDD1vW11iM8KlsrVNtWyP0OUY63LPvDSzGHHt/9v/60/GetCTlk5EBGbohYcYe1/y8I+NNaNOyIqCbdcgEeZWypECc2Usa+XWjI8KuZApmPHpw/EKxv8+5c7JbAH+i0KVbxc2WVfqsEXP6Nc342haoqkrmmo3uNumohKx34teChL9C56Zerz0oU8lpgBQbB+iCqgcZKHUUFiFrs9+28+FmrYZRdXKC9 phpsolo@163.com
    

    复制~/.ssh/id_rsa.pub文件里的内容加入到git服务器authorized_keys文件内
    修改新服务器里的test.txt内容,并推送到远程仓库,然后本地拉取查看是否能成功同步

    [root@iZj6ccn4rzv6zts66ne4btZ 0242]# git add test.txt 
    [root@iZj6ccn4rzv6zts66ne4btZ 0242]# git commit -m "测试推送2"
    *** Please tell me who you are.
    
    Run
    
      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"
    
    to set your account's default identity.
    Omit --global to set the identity only in this repository.
    
    fatal: unable to auto-detect email address (got 'root@iZj6ccn4rzv6zts66ne4btZ.(none)')
    

    出示此报错,按照提示设置其邮箱以及用户名,设置完毕再次commit,commit成功,然后push至远程仓库

    [root@iZj6ccn4rzv6zts66ne4btZ 0242]# git config --global user.email "phpsolo@163.com"
    [root@iZj6ccn4rzv6zts66ne4btZ 0242]# git config --global user.name "hhs"
    [root@iZj6ccn4rzv6zts66ne4btZ 0242]# git commit -m "测试推送2"
    [master 2178928] 测试推送2
     1 file changed, 1 insertion(+), 1 deletion(-)
     [root@iZj6ccn4rzv6zts66ne4btZ 0242]# git push
    warning: push.default is unset; its implicit value is changing in
    Git 2.0 from 'matching' to 'simple'. To squelch this message
    and maintain the current behavior after the default changes, use:
    
      git config --global push.default matching
    
    To squelch this message and adopt the new behavior now, use:
    
      git config --global push.default simple
    
    See 'git help config' and search for 'push.default' for further information.
    (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    'current' instead of 'simple' if you sometimes use older versions of Git)
    
    git@xx.xxx.xxx.xxx's password: 
    Could not chdir to home directory /home/git: Permission denied
    Counting objects: 5, done.
    Writing objects: 100% (3/3), 250 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@xx.xxx.xxx.xxx:/www/wwwroot/git/0242/0242.git
       9396e5c..2178928  master -> master
    

    本地服务器拉取,test.txt内容已改变
    本次测试两台服务器之间形成了一种多人协作开发的关系,这就是分布式版本管理工具的作用
    在这里插入图片描述

    更多相关内容
  • Git服务器搭建简明教程

    千次阅读 2022-04-26 09:56:36
    Ubantu 16下搭建git服务器详细教程。

    1前言

    本文详解在Ubantu 16下搭建Git服务器,力求让读者知其所以然,仅需安装Git和ssh,而无需其他软件。

    2服务器搭建

    在真实服务器或虚拟机里操作均可。另外,如果用VMware Workstation 16 Player的话,默认不用配置虚拟机网卡,本地机就能Ping通。教程使用普通用户操作,如果是root用户,就不用加sudo了,命令将更加简洁。

    2.1安装Git和SSH

    已安装过的最好也再来一遍,以更新到最新,除非自己很清楚。

    sudo apt-get install git
    sudo apt-get install ssh
    service ssh start

    2.2新建用户

    方便管理仓库,这里新建一个叫git的用户,名字可以任意,但推荐取名为git。建议以后Git的相关的东西,都放到这个用户目录下。

    注意,中途输入的密码是给新建的git用户设置的密码,其他直接回车使用默认信息即可。

    sudo adduser git

    注意,以上只是创建了叫git的用户,后续的操作并没有切换到该用户进行。

    2.3创建登录证书

    创建路径.ssh,然后创建authorized_keys文件,这里路径和文件名不能任取,该文件用于存放各个git客户端的RSA公钥,只有在这个列表里的客户端才能连接git服务。公钥在下一步创建。

    cd /home/git/
    sudo mkdir .ssh
    sudo touch .ssh/authorized_keys

    2.4本地端创建密钥

    注意,这一步在本地端进行。不同的本地用户有不同的KEY。

    ssh-keygen -t rsa

    这里在windows下进行,这个命令可以在CMD、PowerShell或Git bash里执行。这里选Git bash,任意空白处右键点击Git bash here,然后右键粘贴执行,中途全默认按回车即可。

     如上图就已经生成,在用户根目录的.ssh文件夹内,id_rsa.pub就是我们要的公钥:

    2.5本地端公钥上传

    这里只是方法之一,只要能把id_rsa.pub传到服务器就行。scp是ssh的文件复制命令。

    scp id_rsa.pub git@103.66.218.190:/home/git/

    注意,使用你自己的ip地址。

    我们来到上边.ssh文件夹内右键点击Git bash here,右键粘贴执行,中途输入yes,然后输入刚才创建git账号的密码,成功后如图:

     2.6服务器添加用户公钥

     注意,在服务器端进行。使用cat指令将公钥追加到authorized_keys文件。

    sudo sh -c "cat id_rsa.pub >> .ssh/authorized_keys"

    注意,如果不是root用户,使用如下方式则会报权限错误:

    sudo cat id_rsa.pub >> .ssh/authorized_keys

    如果想确认是否成功,可以输入命令查看:

    head -n 5 authorized_keys

    命令的意思是查看authorized_keys文件前5行的内容。

    2.7创建仓库存放路径并设置所属用户为git

    路径可任意起名,这里叫gitrepo。

    sudo mkdir gitrepo
    sudo chown git:git gitrepo

    2.8初始化仓库并设置所属用户为git

    这里建了一个叫test的仓库。

    cd /home/git/gitrepo
    sudo git init --bare test.git
    sudo chown -R git:git test.git

    因为这里的test.git路径下有多个文件,所以加-R参数递归。

    到此,git服务器就算搭建完成,URL地址如下:

    git@103.66.218.190:/home/git/gitrepo/test.git

    安全选项

    公钥列表里的客户端都可以无需密码直接可以使用git用户登录shell,如:

    ssh git@103.66.218.190

    下面通过修改/etc/passwd实现限制:

    sudo nano /etc/passwd

    按pagedown翻到最下面:

     找到git用户,一般都在最后,按键盘方向键移动光标到最后,将

    git:x:1001:1001:,,,:/home/git:/bin/bash

    改成:

    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

    改完之后按照提示,分别按ctrl+X,y,回车,实现保存退出,这样就OK了。

    3测试

    以下简单测试Clone和Push,如果你之前用过git,那么得到上边的仓库地址后应该就非常熟悉了。

    3.1 Clone

    在本地电脑上新建一个文件夹A,右键打开Git bash here,试试克隆,会得到一个空的test文件夹。

    git clone git@103.66.218.190:/home/gitrepo/test.git

    注意,ip地址请改成自己的。 还有,这里并不需要输入上边创建git用户的密码,如果需要输入密码,说明公钥添加有误,请重新检查。

     3.2 Push

    进入test文件夹内,右键新建文本文档,内容任意。

    右键打开Git bash here,添加所有文件,然后提交。

    git add -A
    git commit

    在弹出的文本中填入本次更改日志,测试用就随意写,然后保存关闭。

    通过克隆来的远程仓库,默认有个别名叫origin,所以推送可以直接这样:

    git push origin master

     3.3再次克隆

    新建一个文件夹B,并进入,右键打开Git bash here克隆,和之前一样:

    git clone git@103.66.218.190:/home/git/gitrepo/test.git

    可以看到这个就是刚才提交的文本文档:

     4使用TortoiseGit的密码弹窗问题

    TortoiseGit是一个图形界面的Git,不用打“繁琐”的命令了。

    4.1 尝试Clone

    建一个新建文件夹C,右键Git Clone,在URL中填入:

    git@103.66.218.190:/home/git/gitrepo/test.git

     如果这时直接点击OK,那么会有输入远端git用户密码的提示框,因为远端已经有本地机的公钥了,这显然不符合常理。这一点TortoiseGit和Git bash不一样,需要另外加载私钥。

    当然,这里要是输入了上边创建的git用户的密码,也能克隆,这个密码只有管理员知道,自己现在就是管理员,多个git客户端的情况下别人就不知道了,除非你把密码告诉世界上所有人咯。

    4.2创建PPK私钥

     找到开始菜单TortoiseGit文件夹下的PuTTYgen打开:

     按图中步骤操作,中间会有弹窗提示,默认即可。加载2.4步骤创建密钥生成的私钥id_rsa,然后另存为putty_rsa.ppk。

     4.3 Clone

    回到新建文件夹C下,右键Git Clone,Load Putty Key 中加载刚才生成的putty_rsa.ppk

     可以看到,已经能正常Clone了。

    END

    展开全文
  • linux搭建git服务器

    万次阅读 多人点赞 2019-04-09 15:39:11
    Linux服务器配置之Git服务器搭建步骤: 一、配置环境 1、服务器:lCentOS 7.2(64位) + Git (version 1.8.3.1) 2、客户端:Windows 10 Pro(64位) + Git(version 2.11.0.windows.1) 3、服务器连接软件:...

    Linux服务器配置之Git服务器搭建步骤:

    一、配置环境

    1、服务器:lCentOS 7.2(64位) + Git (version 1.8.3.1)
    2、客户端:Windows 10 Pro(64位) + Git(version 2.11.0.windows.1)
    3、服务器连接软件:Xshell 6


    二、配置步骤

    1、安装git 服务端
    Linux作为服务器端系统,Windows作为客户端系统,分别安装Git
    服务器端

    [admin@ceontOS ~]$ su root                  #切换到root用户名

    Password:                                   #输入root用户的密码

    [root@ceontOS ~]# yum install -y git        #执行该命令进行Git安装

     

    安装完后,查看Git版本

    [root@ceontOS ~]# git --version

    git version 1.8.3.1

      

    客户端
    下载 Git for Windows,地址:https://git-for-windows.github.io/
    安装完之后,可以使用 Git Bash 作为命令行客户端
    安装完之后,查看 Git 版本

    $ git --version

    git version 2.11.0.windows.1

     

    Git客户端安装具体可参考:Git安装及SSH Key管理之Windows篇

     

    2、服务器端创建 git 户,用来管理 Git 服务,并为 git 用户设置密码

     

    [root@ceontOS ~]# cd /home                                  #进入/home/目录

    [root@ceontOS home]# id git                                 #查看git用户是否存在

    id: git: no such user                                       #提示git用户不存在

    [root@ceontOS home]# useradd git                            #创建git用户

    [root@ceontOS home]# passwd git                             #为git用户创建密码

    Changing password for user git.

    New password:                                               #设置密码

    BAD PASSWORD: The password is shorter than 8 characters

    Retype new password:                                        #确认密码

    passwd: all authentication tokens updated successfully.

      

     

    3、服务器端创建 Git 仓库
    设置 mkdir -p home/git/fenlin88l.git 为 Git 仓库

     

     

    [root@ceontOS home]#mkdir -p home/git/fenlin88l.git   #在git用户目录下创建仓库目录git,并且创建fenlin88l.git项目测试目录

    注:git  fenlin88l.git是自建目录  fenlin88l.git为仓库名
    [root@ceontOS home]# ls      #查看/home/目录下有哪些用户目录
    admin git
    [root@ceontOS home]# cd git   #进入git用户目录
    [root@ceontOS git]# ls      #查看git用户目录下有哪些目录/文件
     fenlin88l.git 

    [root@ceontOS git ]# git init --bare ./fenlin88l.git    #这步很重要,初始化项目测试目录


    Initialized empty Git repository in /home/git/fenlin88l.git/

     

    然后把 Git 仓库的 owner 修改为 git

     

    或执行  git init --bare home/git/fenlin88l.git

       

    [root@ceontOS git]#  ll      #查看fenlin88l.git项目文件夹的拥有者
    total 4
    drwxr-xr-x 3 root root 4096 Jan 13 13:08 fenlin88l.git    #拥有者是root用户名


    [root@ceontOS git]# chown -R git:git fenlin88l.git/    #将拥有者改为git用户

        
    [root@ceontOS git]# ll      #再次查看fenlin88l.git项目文件夹的拥有者
      #拥有者是git用户 如下

       

     

    4、客户端 clone 远程仓库

    先在本地Windows系统上创建一个存放git项目的文件夹,例如我的设置在:【D:\git\fenlin88

      

    此处通过Git Bash来创建的,当然也可以手动创建该目录,然后进入该目录,启动Git Bash

     #在桌面打开的git bash


    $ cd d:   #进入D盘

       
    $ mkdir git  #创建git文件夹
      
    $ cd git   / #进入git文件夹创建fenlin88文件夹

     
    $ git clone  git@服务器公网IP地址:/home/git/fenlin88l.git    #IP地址后面跟冒号,冒号后面是刚才初始化的项目文件夹的绝对路径

    ![](http://upload-images.jianshu.io/upload_images/2267589-7bedba534bdc9f04.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    例:  git clone git@47.107.193.147:/home/git/fenlin88l.git

     

    当第一次连接到目标 Git 服务器时会得到一个提示:

    The authenticity of host '118.178.142.77 (118.178.142.77)' can't be established.
    ECDSA key fingerprint is SHA256:JwC9NxLIjBGqtLC2NUk8MulSc3XH3mM5AWMcFz0a5/8.
    Are you sure you want to continue connecting (yes/no)? yes

    选择 yes

    Warning: Permanently added '118.178.142.77' (ECDSA) to the list of known hosts.

      

     

    此时 C:\Users\用户名\.ssh 下会多出一个文件 known_hosts,以后在这台电脑上再次连接目标 Git 服务器时不会再提示上面的语句。

    【说明】如果你的服务器没有配置SSH连接,那么按照正常情况会让你输入git用户的密码,输入正确后就能进行项目克隆了。

    ![](http://upload-images.jianshu.io/upload_images/2267589-776f44a088bba653.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

     

    如果不采用 SSH 公钥来进行验证,则每次都要输入密码,很麻烦,下面就来配置SSH公钥验证的方式来clone项目

     

     

       问题:如果不配置ssh公钥使用git远程仓库会怎么样,会出现以下:

              

    5、客户端创建 SSH 公钥和私钥

     

    ssh-keygen -t rsa -C "987679265@qq.com"

     

    管理了多个ssh_key,所以这边给公私钥起了个名字:id_rsa_git,生成后需要进行**ssh-add**操作,如何管理多个ssh_key可以参考:[Git安装及SSH Key管理之Windows篇](http://www.jianshu.com/p/a3b4f61d4747)

    ![](http://upload-images.jianshu.io/upload_images/2267589-f781abf1bff6be8f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

     

    此时 C:\Users\用户名\.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub

    id_rsa_git 是私钥

    id_rsa_git.pub 是公钥

    ![](http://upload-images.jianshu.io/upload_images/2267589-a5b6810e27a15c93.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

     

    6、服务器端修改配置文件,打开 RSA 认证

    进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:

    [root@ceontOS ~]# sudo vi /etc/ssh/sshd_config    #root用户下,编辑/etc/ssh/sshd_config文件

     

    按如下设置这三个配置,如果注释掉了,则去掉前面的#号

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

    保存并重启 sshd 服务:

    sudo service sshd restart  #重启sshd服务

     

    由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys

    在 /home/git/ 下创建目录 .ssh

     

     

    [root@ceontOS ~]# cd /home/git
    [root@ceontOS git]# pwd
    /home/git
    [root@ceontOS git]# mkdir  .ssh
    [root@ceontOS git]# ls  -a
    . .. .bash_logout .bash_profile .bashrc repository .ssh

    然后把 .ssh 文件夹的 owner 修改为 git

     

    [root@ceontOS git]# chown -R git:git .ssh


    [root@ceontOS git]# ll -a | grep .ssh
    drwxr-xr-x 2 git git 4096 Jan 13 14:54 .ssh

     

    7、将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件

    回到客户端Git Bash 下,导入文件:

    $ ssh git@服务器公网IP地址 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa_git.pub

    ![](http://upload-images.jianshu.io/upload_images/2267589-c0e6f9dc9b76225f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    回到服务器端,查看 .ssh 下是否存在 authorized_keys 文件:

    [root@ceontOS ~]# cd /home/git/.ssh/
    [root@ceontOS .ssh]# ll
    total 4
    -rw-rw-r-- 1 git git 398 Jan 13 15:03 authorized_keys
    [root@ceontOS .ssh]# cat authorized_keys    #查看客户端生成的公钥

     

    重要:

    修改 .ssh 目录的权限为 700

    修改 .ssh/authorized_keys 文件的权限为 600

    [root@ceontOS git]# chmod 700 .ssh
    [root@ceontOS git]# cd .ssh/
    [root@ceontOS .ssh]# chmod 600 authorized_keys

     

    1. 客户端再次 clone 远程仓库

     Eg:

    git clone git@118.178.142.77:/home/git/fenlin88l.git

    ![](http://upload-images.jianshu.io/upload_images/2267589-909ce2867f46f28c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

     

    9、禁止 git 用户 ssh 登录服务器

    之前在服务器端创建的 git 用户不允许 ssh 登录服务器

    编辑 /etc/passwd

    [admin@ceontOS ~]$ su root   #切换到root用户
    Password:
    [root@ceontOS admin]# sudo vi /etc/passwd  #编辑/etc/passwd文件

    找到:

    git:x:1001:1001::/home/git:/bin/bash

    修改为:

    git:x:1001:1001::/home/git:/bin/git-shell

    此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。

     

     

     

    Windows下客户端操作

    在客户端打开Git Bash,然后将目录切换到指定文件夹下面下。执行下面命令,将该文件夹设为本地仓库

     

    git init   初始化 

     

    接着再执行如下命令,将本地仓库连接到服务器上的仓库:

    git remote add origin git@公网服务器ip:/home/git/fenlin88l.git

     

    简单说一:192.168.1.10是服务器的地址;“@”符号前面的git是服务器的登录名,如果前面没有添加组合git用户,也是可以用已经存在的用户名,冒号”:”的后面的是仓库所在的地址,如果地址前面有“/”使用的是绝对地址,如果没有,就是相对与登录用户的根目录下。接下来的其他操作就和前面说的向github.com上传文件一样了。可以到Git的简单使用看看。

    Git仓库的克隆

    有时我们需要在不同的电脑上使用同一份代码,这是就需要将代码从服务器上克隆下来。打开Git Bash,然后将目录切换到指定的目录下面,运行一下命令:

    git init

    git clone git@192.168.1.10:/home/git/fenlin88l.git

     

     

    就可以将服务器上面的代码下载到本地。clone后面的命令和上面remote add origin 后面的代码的意思是一样的。

     

     

     

     

    如果出现以下这种问题,解决办法:

    https://blog.csdn.net/u014343528/article/details/48787221

     

    1.在终端输入。

    ssh-keygen -t rsa -C "username" (注:username为你git上的用户名)

    如果执行成功。返回

     

    或:

     

      https://blog.csdn.net/huahua78/article/details/52330792

       查看远端地址 git remote –v

    查看配置 git config --list

         

    #git status

        

      

    git add .  // 暂存所有的更改

     git checkout . // 丢弃所有的更改

     git status // 查看文件状态

     git commit -m "本次要提交的概要信息" // 提交

     

    设置远端仓库地址 git remote set-url origin 你的远端地址
    git push origin master出现以下情况:

      

    解决办法:删除当前key,然后重新生成key,

        

    会在本地C:\Users\你的用户名.ssh生成文件夹,里面有id_rsa和id_rsa.pub两个文件
    然后复制id_rsa.pub文件里面的内容,到https://github.com/settings/keys新建一个,

      

    设置远程地址:(上面新建的)
    git remote add origin_new 新的地址
    git remote –v查看
    git push origin_new master重新推送
    下面是设置用户名
    Git config –global user.name “用户名”
    git config –global user.email 邮箱地址

    设置代理:
    git config –global https.proxy http://127.0.0.1:1080
    取消设置代理:
    git config –global –unset https.proxy

    取消git init操作时出现 rm: cannot remove ‘.git’: Is a directory
    是因为输入的命令是: rm -f .git
    解决办法:rm -rf .git 即删除整个.git目录

    failed to push some refs to ‘git@github.com:*.git’ hint: Updates were rejected ···
    使用git push origin master的时候出现一下错误:

        

    解决办法:
    git push -f origin master或者git pull下

      

    恢复不小心删除的 git stash 文件:

       git fsck  //找到dangling的对象

    git show id  //上面列出的每一条记录的最后一个字符串,按 enter 查看具体信息

    git stash apply id

     

    Git回滚提交

         //reset将一个分支的末端指向另一个提交。这可以用来移除当前分支的一些提交, 让master分支向后回退了两个提交

    git checkout master

    git reset HEAD~2

    //Revert撤销一个提交的同时会创建一个新的提交, 找出倒数第二个提交,然后创建一个新的提交来撤销这些更改,然后把这个提交加入项目中。

    git revert HEAD~2

     

     

    错误:Please enter a commit message to explain why this merge is necessary. 解决办法:
    1. (可选)按键盘字母 i 进入insert模式
    2. (可选)修改最上面那行黄色合并信息
    3. 按键盘左上角”Esc” (退出insert模式)
    4. 输入”:wq”,按回车键即可(提交)

    gitignore notworking:

    git rm -r --cached .

    git add .

    git commit -m "fixed untracked files"

     

    git Failed to connect to www.google.com port 80: Timed out 可能是因为设置了代理:

    git config --global http.proxy          //查看代理

    git config --global --unset http.proxy  //取消代理

     

    HTTP Basic access denied on Git:

    git config --global --unset credential.helper

    git clone '···'

    login username,password

     

    rebase 和 merge 区别

    git pull --rebase origin master

     

    rebase 选项告诉 Git 把你的提交移到同步了中央仓库修改后的 master 分支的顶部。rebase 操作过程是把本地提交一次一个地迁移到更新了的中央仓库master分支之上。这意味着可能要解决在迁移某个提交时出现的合并冲突,而不是解决包含了所有提交的大型合并时所出现的冲突。这样的方式让你尽可能保持每个提交的聚焦和项目历史的整洁。反过来,简化了哪里引入Bug的分析,如果有必要,回滚修改也可以做到对项目影响最小。

    git pull origin master

     

    如果没有 rebase, pull 操作仍然可以完成,但每次 pull 操作要同步中央仓库中别人修改时,提交历史会以一个多余的『合并提交』结尾。
    合并玩冲突之后,git rebase --continue,Git 会继续一个一个地合并后面的提交,如其它的提交有冲突就重复这个过程。
    如果你碰到了冲突,但发现搞不定,不要惊慌。只要执行下面这条命令,就可以回到你执行git pull –rebase命令前的样子:git rebase --abort

     

     

     

    更多Git 教程系列文章: 

    Git常用命令整理  http://www.linuxidc.com/Linux/2017-12/149316.htm

    GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

    Git使用图文详细教程  http://www.linuxidc.com/Linux/2016-11/136781.htm

    分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 

    Git从入门到学会 http://www.linuxidc.com/Linux/2016-10/135872.htm

    Git基本操作详解 http://www.linuxidc.com/Linux/2016-10/135691.htm

    Git部署与常用基本命令详���   http://www.linuxidc.com/Linux/2017-06/144961.htm

    分布式版本控制系统 Git 详细教程  http://www.linuxidc.com/Linux/2017-05/143747.htm

    Git命令和配置技巧  http://www.linuxidc.com/Linux/2017-11/148423.htm

    Git 的详细介绍:请点这里
    Git 的下载地址:请点这里

     

    本人微信 fenlin88l     QQ:987679265

     

     

    展开全文
  • windows下搭建Git服务器

    千次阅读 2021-03-07 18:47:39
    第一步:下载Git服务端:http://www.gitblit.com/ 不好下载的给您备上百度云链接: ...提取码:7kyk 第二步:解压(不需要安装) 第三步:配置 ...这个文件就是Git运行时读取配置信息的文件,在1.8版本中,Git

    第一步:下载Git服务端:http://www.gitblit.com/

    在这里插入图片描述
    不好下载的给您备上百度云链接:
    链接:https://pan.baidu.com/s/1PMZP3ZAQNXSsd3NBHQ-t-Q
    提取码:7kyk

    第二步:解压(不需要安装)

    在这里插入图片描述

    第三步:配置

    1、创建资料库,也就是用于保存上传资料的文件夹,这里我取名为GitRepository
    在这里插入图片描述
    2、找到Git目录中data文件下的 gitblit.properties 文件
    在这里插入图片描述
    这个文件就是Git运行时读取配置信息的文件,在1.8版本中,Git的配置都在这里,但是到了1.9版本,配置信息被提取出来了,默认把配置信息提取到了defaults.properties文件中,但是Git会从这个文件读取,所以要在这个文件里引用defaults.properties文件,如下图(因为我用的版本是1.9.1,这个文件不需要修改,但是需要修改defaults.properties文件,写这一段话是为了让大家了解一下这个变化):
    在这里插入图片描述
    我这里使用的是gitblit-1.9.1,所以需要在defaults.properties文件中配置

    3、找到Git目录中data文件下的 defaults.properties 文件
    在这里插入图片描述
    打开这个文件后:
    ①找到 git.repositoriesFolder
    配置如下:

    git.repositoriesFolder = E:\Git Server\GitRepository
    

    这一步是配置资料库,我们搭建好Git Server以后上传的资料就会保存在这里,路径是我们在上面创建的
    ②找到 server.httpPort
    配置如下:

    server.httpPort = 6699
    

    这一步是设定http协议的端口号,需要注意的是:设定端口不要与已有端口冲突,例如sql server和Tomcat等服务的端口号,和他们错开。
    ③找到 server.httpBindInterface和server.httpsBindInterface
    配置如下:

    server.httpBindInterface = 127.0.0.1
    server.httpsBindInterface = 127.0.0.1
    

    这一步是设定服务器的IP地址,这里填写你的服务器IP,我在本地学习搭建Git Server写的这篇文章,所以写的是127.0.0.1
    配置好的信息如下:
    在这里插入图片描述
    为了方便截图,我把这些信息放在了一起,你的文件打开应该不是这样的。

    配置好以后保存文件。

    第四步:测试Git Server是否搭建成功。

    在这里插入图片描述
    双击gitblit.cmd文件,运行成功,结果如下:
    在这里插入图片描述
    打开浏览器,访问上面我们配置好的IP和端口:http://127.0.0.1:6699/
    访问结果如下:
    在这里插入图片描述
    默认的用户名和密码都是admin,输入后点击登录按钮,如下图:
    在这里插入图片描述
    到这里Git Server就已经配置好了。

    第五步:把搭建好的Git Server设置为windows服务

    在Git根目录下,找到 installService.cmd 文件,用文本编辑器打开如下图:
    在这里插入图片描述
    按照截图中修改完毕后,保存,以管理员身份运行,如下图:
    在这里插入图片描述
    有一个黑框一闪而过,这是正常的,其实配置出现错误,也是黑框一闪而过 /哭笑
    验证一下,打开windows服务面板:
    在这里插入图片描述
    可以看到gitblit已经出现在列表中,服务安装成功。到此配置结束。

    Git服务器搭建好了,那么接下来就到创建远程版本库,提交推送代码了,文章写的比较详细,但是太长不方便查看,分成了两篇,见谅。

    后续:git服务器创建版本库,本地代码关联远程仓库并上传代码点这里查看

    如果在服务列表中找不到gitblit,进行如下操作:
    在这里插入图片描述
    根据上图提示修改完毕,再次保存,以管理员身份运行gitblit.cmd,问题即可解决。

    展开全文
  • 10分钟学会linux(ubuntu)安装git服务器

    千次阅读 2020-04-04 18:33:03
    因需要管理项目,需要用到git,不想使用一些商用的git服务商,所以自己搭建一个简单的git服务器,用于管理项目。 环境 linux 服务器:ubuntu git 安装地址,下载地址(https://git-scm.com/download/linux) 安装...
  • Git服务器更换IP

    千次阅读 2022-03-17 09:25:46
    git服务器更换IP后,客户端代码如何正确提交呢 首先客户端,需要指向新的IP,具体操作步骤如下: 【TortoiseGit】->【Settings】设置新的IP即可,正常提交代码到新更换IP的git服务器
  • 在Ubuntu上搭建git服务器

    千次阅读 2019-03-19 14:36:23
    在ubuntu上创建git服务器的详细步骤: 1.安装git Linux作为服务器端系统,Windows作为客户端系统,分别安装Git 服务器端: [admin@admin ~]$ su root #切换到root用户名 Password: ...
  • 10分钟教你在Windows上搭建Git服务器

    千次阅读 2021-12-15 11:49:58
    10分钟教你在Windows上搭建Git服务器一、下载并安装jdk.二、下载Gitblit三、配置四、运行五、测试 一、下载并安装jdk. 安装JDK请移步到:2022年最新Java JDK1.8的安装教程 二、下载Gitblit 下载地址:...
  • 创建局域网Git服务器

    千次阅读 2018-11-06 17:09:27
    本文提供的方法适用于小团队在局域网内通过git协调工作。 一. 基本步骤 第1步:安装 Linux,安装 Git 此处省略具体操作步骤。 第2步:创建 git 用户 在Linux系统内以管理员权限执行如下命令: adduser git ...
  • IDEA 出现问题: Git 服务器变更,如何修改服务器地址(JAVA java 小虚竹)
  • 初学Git及简单搭建git服务器和客户端

    万次阅读 多人点赞 2018-07-30 14:34:33
    初学Git及简单搭建git服务器和客户端 xinsir9991人评论5814人阅读2018-01-12 17:38:29 初识Git Git是什么?  Git是目前世界上最先进的分布式版本控制系统。 SVN与Git的最主要的区别?  SVN是集中式版本...
  • windows搭建本地git服务器、git客户端

    万次阅读 2018-08-23 10:03:52
    最近接触到了git,感觉到了它的强大和方便,git在linux环境下使用起来是非常方便,但如何在windows下搭建一个基于ssh的git服务器呢?闲话不多说,开始。     1、所需的软件下载及安装 所需工具下载地址: ...
  • 本地搭建git服务器

    千次阅读 热门讨论 2018-07-20 16:53:00
    前言: 相信很多公司都已经将代码管理工具切换为git了,同时将自己的部分代码拿到github上托管。当然,还有部分涉及商业机密的代码则在公司...我们经常需要摸索git的具体某项功能,于是,自己搭建一个git服务器...
  • Windows下私有Git服务器的搭建与使用

    千次阅读 2019-07-24 22:58:27
    说明本文参考整理了以下两篇文章,修改了部分内容,更新了内容图片 参考资料: ...GitBlit是一个纯Java语言开发的开源Git服务工具,用于管理、查看和服务Git储存库。它是为想要集中集中式存储...
  • ubuntu完美搭建git服务器

    千次阅读 2018-03-26 11:00:31
     安装git-core,openssh-server,openssh-client打开终端输入以下命令:ubuntu:~$ sudo apt-get install git-core openssh-server openssh-client git-core是git版本控制核心软件。openssh-server和openssh-...
  • Ubuntu下搭建Git服务器

    万次阅读 多人点赞 2017-12-20 11:29:05
    下面搭建的git服务器的简易网络拓扑图如下所示: 一、安装及配置所需软件[Git服务器,coffee@workpc1] git-core是git版本控制核心软件,而且git是通过ssh协议来在服务器与客户端之间传输文件,故openssh-server...
  • http方式搭建git服务器

    千次阅读 2019-07-02 18:14:42
    这也导致了之前的git服务访问不到了,不能提交和拉取代码了。 于是就将git的访问方式改为http,具体步骤记录如下: 一、服务器安装Git(这在之前已经安装好了,在这里再写一遍) 1、在服务器上安装Git yum -y ...
  • 局域网GIt服务器搭建

    千次阅读 2019-02-28 15:43:03
    局域网Git服务器搭建 环境 服务器 Ubnutu16.4 + git (version 2.7.4) 客户端 windows10 + git 安装Git 服务器端 #安装git #sudo apt-install git-core #查看git版本 #git --version 客户端 下载GIt...
  • 使用Docker搭建Git服务器, Gitblit 服务

    千次阅读 2018-08-14 17:35:04
    记录一次使用Docker搭建Git服务器的过程. Git服务器软件选择了Gitblit 1. 选择镜像  通过搜索, 发现没有官方的, 只有两个start不是很多的镜像.  里面的jacekkow/gitblit看起来相对较新. 选择这个进行下载安装...
  • 教你搭建你自己的Git服务器

    万次阅读 2016-10-18 10:04:05
    现在我们将要学习如何搭建 git 服务器,如何编写自定义的 Git 钩子来在特定的事件触发相应的动作(例如通知),或者是发布你的代码到一个站点。
  • 在群辉上搭建git服务器

    千次阅读 2019-10-17 23:20:18
    环境及使用工具 Windows10 群辉DS3617xs Git-2.22.0-64-bit XShell6 一、在群辉上安装Git Server套件 ...四、设置Git Server,允许刚才创建的用户访问git服务器 五、启动SSH 六、启动家目录(如果...
  • Windows搭建局域网Git服务器

    千次阅读 2019-12-08 18:44:46
    Git学习 本文说明在局域网中用一台电脑作为服务器,在服务器中创建一个文件夹,并设置文共享。然后该文件夹作为公开的版本库,局域网内其他电脑都可以访问。 配置公开版本库 服务器端 首先在d盘创建一个文件夹,...
  • 搭建git服务器(在windows server)

    万次阅读 2018-06-17 11:29:08
    于是开始尝试使用git。目前公共的git服务器使用量比较广泛就是github和码云。github私有库是收费的,码云虽然不收费,但是用户数量有限制。想着还是自己搭建一个git服务器吧。搭建的环境是在windows server 32bit...
  • 使用阿里云搭建属于自己的git服务器(包含图解) 平时我们上班的时候都是用git进行版本管理。在公司的时候,往往公司就是给你给仓库地址和账号密码来进行登陆来使用git。那如果我们自己业余写代码要托管,又不能公司...
  • 那么在生产的过程中为了更好的将每个人完成的地方完美的搭配起来,公司大多会采用比较合适的团队协作工具,早起svn的使用很普遍,近年出现了github社区之后很多公司转而使用git仓库进行高效的代码协作以及版本控制。...
  • centos7上搭建git服务器

    千次阅读 2018-10-16 13:09:50
    centos7上搭建git服务器 环境 centos7,git 1.8.3,tortisegit 安装git和创建用户 ...# 创建一个git用户组和用户,用来运行git服务 $ groupadd git $ adduser git -g git 创建证书登录 $ mkdir /home/git...
  • 在云服务器搭建git服务器

    千次阅读 2018-05-31 23:34:06
    准备材料:【1】云服务器账号【2】securtCRT(也可以选用其他工具)具体步骤:【1】连接远程服务器,通过yum安装git yum install git【2】安装完之后即可查看git版本【3】添加git用户,后面用于客户端连接git服务器...
  • Gitea 是相比于gitlab更加轻量化,而且搭建更加方便快捷。 本博文记录了在Ubuntu 20.04上安装和配置Gitea ...创建一个新的系统用户git,作为Git应用的管理用户 # 新建Git用户 sudo adduser git # 修改或新增git用.
  • Linux(Ubuntu)搭建局域网git服务器

    千次阅读 2018-06-27 20:57:40
     就在六月份,世界上最大的闭源公司微软,以75亿美元收购了全球最大的开源公司GitHub,GitHub是一个流行的代码库托管服务,它允许开发人员使用Linux创始人Linus Torvalds于2005年发明的流行的Git源代码管理系统在...
  • Pycharm连接git服务器的方法

    千次阅读 2019-04-27 17:13:44
    第一种:在本地已创建文件目录,连接方式 ...$ git init #通过命令把目录变成Git可以管理的仓库(初始化一个git仓库) $ ls -a 2, 将工作区文件-----------》添加到缓存区-----------》将缓存区文件提交到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 366,791
精华内容 146,716
关键字:

git服务

友情链接: em.rar