精华内容
下载资源
问答
  • 安装到后台服务后,这个后台服务启动不起来,提示:不能在本地计算机启动gitblit。 windows 日志: 日志名称: System 来源: Service Control Manager 日期: 2018/5/10 16:51:12 事件 ID: 7024 任务类别: ...
  • Mac 搭建Git服务器(Gitblit)

    千次阅读 2019-05-05 23:56:31
    文章目录Mac下搭建Git服务器#1 环境#2 说明#3 开始#3.1 下载 Gitblit#3.2 配置本地 Git 服务器仓库存储数据的根目录#3.3 启动 Gitblit#3.4 使用#3.4.1 创建创库#3.4.2 本地使用GitHub for Desktop链接(http)#3.4.3 ...

    Mac下搭建Git服务器

    #1 环境

    Mac
    JDK
    

    #2 说明

    #3 开始

    #3.1 下载 Gitblit

    使用 Gitblit 搭建Git服务器

    • 下载 jdk(正常安装就可以)

    jdk

    • 下载 Gitblit

    Gitblit


    把解压后的 gitblit拷贝到 /opt/app/gitblit (路径随意),解压后的文件就是Git服务器

    20190505173730-image.png


    #3.2 配置本地 Git 服务器仓库存储数据的根目录

    vim /opt/app/gitblit/gitblit-1.8.0/data/defaults.properties
    
    • 修改本地 Git 服务器仓库根目录
    # 我这里用的文件夹名称为 MyGitRepository
    git.repositoriesFolder = MyGitRepository
    
    • 修改 HTTP 协议端口号:
    server.httpPort = 5679
    

    20190505174531-image.png


    #3.3 启动 Gitblit

    /opt/app/gitblit/gitblit-1.8.0
    ./gitblit.sh 
    

    20190505174732-image.png


    20190505174835-image.png


    至此Git服务器已经搭建完毕

    #3.4 使用

    #3.4.1 创建创库

    20190505175101-image.png

    #3.4.2 本地使用GitHub for Desktop链接(http)

    20190505175549-image.png


    20190505183244-image.png

    在局域网内的其他PC上check out仓库代码

    20190505183952-image.png


    20190505183959-image.png


    20190505184006-image.png


    #3.4.3 本地使用GitHub for Desktop链接(ssh)

    在使用http操作仓库时,每次pull和push都需要密码验证,如果使用ssh,则没有这么麻烦

    因为我在本地有GitHub的ssh,所以GitHub和gitblit共用一个ssh秘钥,把ssh公钥复制到gitblit中

    20190505185733-image.png


    生成ssh请看这篇博客


    展开全文
  • Windows2008下搭建Git服务器~用的是 gitblit~~~JAVA 设置正常,gitblit 设置也看了教程做, 就是不能启动,求解~!!!
  • 服务器自动部署项目之GitHooks神器 - CSDN博客--每次都是将本地将代码push到远程仓库,然后再ssh到服务器git pull,甚是麻烦。在项目开发中使用git的时候,push之后,编译系统会有自动部署等功能。下面是配置方法=...

    服务器自动部署项目之GitHooks神器 - CSDN博客

    --

    每次都是将本地将代码push到远程仓库,然后再ssh到服务器上git pull,甚是麻烦。在项目开发中使用git的时候,push之后,编译系统会有自动部署等功能。下面是配置方法

    ==

    首先要明确现在代码的分布情况,

    1,开发者电脑上的本地仓库,

    2,git服务器上的远端仓库,

    3,web服务器上的另一个本地仓库,(我们浏览器访问的就是这里的代码

    其实自动部署就是要当从开发者本地仓库提交代码到远端仓库的时候,自动把代码部署到web服务器的本地仓库,实现开发者本地仓库和web服务器的本地仓库的同步。(即通过GitHook中的post-receive脚本文件)

    ==

    (git服务器上的远端仓库)  新建一个目录如 /root/hyf/ws/ ,在该目录下创建了 空的仓库 如  /root/hyf/ws/testhyf.git/


    mkdir ws

    cd ws

    git init --bare testhyf.git

    --

    (web服务器上)一个目录   /root/hyf/workspace,克隆刚才创建的仓库


    mkdir workspace

    cd workspace/

    git clone /root/hyf/ws/testhyf.git

    --

    配置Git Hook

    进入到/root/hyf/ws/testhyf.git/hooks文件夹,使用vi post-receive创建一个脚本,当你在本地仓库执行git push后就会触发post-receive。 

    部署路径为:/root/hyf/workspace/testhyf

    post-receive的内容如下:   


    #!/bin/sh
    
    
    #判断是不是远端仓库
    
    IS_BARE=$(git rev-parse --is-bare-repository)
    if [ -z "$IS_BARE" ]; then
    echo >&2 "fatal: post-receive: IS_NOT_BARE"
    exit 1
    fi
    
    unset GIT_DIR
    DeployPath="/root/hyf/workspace/testhyf"
    
    echo "==============================================="
    cd $DeployPath
    echo "deploying the test web"
    
    #git stash
    
    #git pull origin master
    
    git fetch --all
    git reset --hard origin/master
    
    gitbook build
    sleep 15
    
    time=`date`
    echo "web server pull at webserver at time: $time."
    echo "================================================"

    保存后赋予可执行权限:

    chmod +x post-recevie


    chmod +x /root/hyf/workspace/testhyf/hooks/post-receive

    这样在开发者提交代码的时候,就会自动部署。

    --

    ==

    那么如何测试验证我们的刚才是否实现了推送之后就自动部署呢?


    ==

    linux  git本地服务器搭建

    Linux搭建 Git 服务器 - 黄棣-dee - 博客园

    查看 Git 版本

    $ git --version
    git version 2.8.4.windows.1

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

    [root@localhost home]# id git
    id: git:无此用户
    [root@localhost home]# useradd git
    [root@localhost home]# passwd git

     服务器端创建 Git 仓库

    设置 /home/data/git/gittest.git 为 Git 仓库

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

    [root@localhost home]# mkdir -p data/git/gittest.git
    [root@localhost home]# git init --bare data/git/gittest.git
    Initialized empty Git repository in /home/data/git/gittest.git/
    [root@localhost home]# cd data/git/
    [root@localhost git]# chown -R git:git gittest.git/


    chown -R git:git testhyf.git/

    --

    客户端 clone 远程仓库

    $ git clone git@192.168.56.101:/home/data/gittest.git
    git clone git@10.160.59.236: /root/hyf/ws/testhyf.git

    10.160.59.236:/root/hyf/ws/testhyf.git


    --


    相信,选择是

    --


    --


    git

    grsx1234

    --


    git.exe clone --progress -v "10.160.59.236: /root/hyf/ws/testhyf.git" "D:\project\hyftest\testhyf"


    Cloning into 'D:\project\hyftest\testhyf'...
    fatal: ' /root/hyf/ws/testhyf.git' does not appear to be a git repository
    fatal: Could not read from remote repository.


    Please make sure you have the correct access rights
    and the repository exists.

    --

    fatal: ' /root/hyf/ws/testhyf.git' does not appear to be a git repository

    致命的:“/root/hyf/ws/testhyf.git并不是一个git仓库

    --

    git root 目录 git 仓库

    root 账户 

    git clone root@192.168.1.1:/home/repository/meadowlark.git

    --

    git clone git@10.160.59.236: /root/hyf/ws/testhyf.git


    The authenticity of host '10.160.59.236 (10.160.59.236)' can't be established.
    ECDSA key fingerprint is SHA256:hx/3N8tIH+Kz3guoZQDoCYeVvxHbLzcZojBILsiJbBw.

    Are you sure you want to continue connecting (yes/no)?

    选yes 回车,


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


    --


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


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

    'ssh-keygen' 不是内部或外部命令,也不是可运行的程序


    找到Git/usr/bin目录下的ssh-keygen.exe

    属性-->高级系统设置-->环境变量-->系统变量,找到Path变量,进行编辑,End到最后,输入分号,粘贴复制的ssh-keygen所在的路径,保存;

    再打开一个cmd,执行ssh-keygen,成功!


    --

    都是按回车就可以。


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

    id_rsa 是私钥

    id_rsa.pub 是公钥


    --

     服务器端 Git 打开 RSA 认证

    进入 /etc/ssh 目录,编辑 sshd_config,



    打开以下三个配置的注释

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

    保存并重启 sshd 服务:

    [root@localhost ssh]# /etc/rc.d/init.d/sshd restart

     

    -bash: /etc/rc.d/init.d/sshd: 没有那个文件或目录


    service sshd start

    Redirecting to /bin/systemctl start  sshd.service


    在云服务器 ECS Linux CentOS 7 下重启服务不再通过 service  操作,而是通过 systemctl 操作。 操作说明如下:

    1. 查看 sshd 服务是否启动:

    ???704.jpg

    看到上述信息就可以确定是启动了。

    2. 如果没有启动,则需要启动该服务:systemctl start sshd.service

    3. 重启 sshd 服务:systemctl restart sshd.service

    4. 设置服务开启自启:systemctl enable sshd.service

    --


    --

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

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

    [root@localhost git]# pwd
    /home/git
    [root@localhost git]# mkdir .ssh
    [root@localhost git]# ls -a
    . .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla .ssh

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

    复制代码
    [root@localhost git]# chown -R git:git .ssh
    [root@localhost git]# ll -a
    总用量 32
    drwx------. 5 git  git  4096 8月  28 20:04 .
    drwxr-xr-x. 8 root root 4096 8月  28 19:32 ..
    -rw-r--r--. 1 git  git    18 10月 16 2014 .bash_logout
    -rw-r--r--. 1 git  git   176 10月 16 2014 .bash_profile
    -rw-r--r--. 1 git  git   124 10月 16 2014 .bashrc
    drwxr-xr-x. 2 git  git  4096 11月 12 2010 .gnome2
    drwxr-xr-x. 4 git  git  4096 5月   8 12:22 .mozilla
    drwxr-xr-x. 2 git  git  4096 8月  28 20:08 .ssh
    复制代码

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

    回到 Git Bash 下,导入文件:

    $ ssh git@192.168.56.101 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

    ssh git@10.160.59.236 'cat >> .ssh/authorizd_keys' < ~/.ssh/id_rsa.pub

    需要输入服务器端 git 用户的密码



    不要再 windows cmd 下 输入 这条命令。要用git-bash.exe


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

    [root@localhost git]# cd .ssh
    [root@localhost .ssh]# ll
    总用量 4
    -rw-rw-r--. 1 git git 398 8月  28 20:08 authorized_keys

    可以查看一下是否是客户端生成的公钥。

     

    重要:

    修改 .ssh 目录的权限为 700

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

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

     

    客户端再次 clone 远程仓库

    $ git clone git@192.168.56.101:/home/data/git/gittest.git

    还是如此


    是不是 因为仓库创建的时候在root 目录的原因。 现在改为home目录下的。结果可以了。

    --

    服务器端创建 Git 仓库

    设置 /home/data/git/gittest.git 为 Git 仓库

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

    [root@localhost home]# mkdir -p data/git/gittest.git
    [root@localhost home]# git init --bare data/git/gittest.git
    Initialized empty Git repository in /home/data/git/gittest.git/
    [root@localhost home]# cd data/git/
    [root@localhost git]# chown -R git:git gittest.git/


    --


    git clone git@ 

    ==

    禁止 git 用户 ssh 登录服务器

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

    编辑 /etc/passwd

    找到:

    git:x:502:504::/home/git:/bin/bash

    修改为

    git:x:502:504::/home/git:/bin/git-shell

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

    ==

    ==

    接着之前的 自动部署

    那么如何测试验证我们的刚才是否实现了推送之后就自动部署呢?

    这次重新搭建一下

    我们已经创建了一个  10.160.59.236:/home/data/git/gittest.git  这个远端仓库。

    我们建立钩子


    这次我们部署到 /var/www/hyfws/gittest

    #!/bin/sh
    
    
    #判断是不是远端仓库
    
    
    IS_BARE=$(git rev-parse --is-bare-repository)
    if [ -z "$IS_BARE" ]; then
    echo >&2 "fatal: post-receive: IS_NOT_BARE"
    exit 1
    fi
    
    
    unset GIT_DIR
    DeployPath="/var/www/hyfws/gittest"
    
    
    echo "==============================================="
    cd $DeployPath
    echo "deploying the test web"
    
    
    #git stash
    
    
    #git pull origin master
    
    
    git fetch --all
    git reset --hard origin/master
    
    
    gitbook build
    sleep 15
    
    
    time=`date`
    echo "web server pull at webserver at time: $time."
    echo "================================================"
    


    保存后赋予可执行权限:

    chmod +x post-receive


    现在需要创建目录,并克隆仓库 ,生成 /var/www/hyfws/gittest


    mkdir -p /var/www/hyfws

    cd /var/www/hyfws

    git clone /home/data/git/gittest.git


    好了,接下来测试一下。

    在客户端的克隆下来的目录中,添加一个文件,如ceshi.txt。  git提交



    提交


    推送


    确定


    输入密码,ok


    ---

    git.exe push --progress "origin" master:master


    Counting objects: 3, done.
    Writing objects: 100% (3/3), 229 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    remote: ===============================================
    remote: deploying the test web
    remote: hooks/post-receive:行19: $'\357\274\203git': 未找到命令
    remote: error: 无法打开 .git/FETCH_HEAD:????
    remote:
    remote: fatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree.
    remote: Use '--' to separate paths from revisions, like this:
    remote: 'git <command> [<revision>...] -- [<file>...]'
    remote: hooks/post-receive:行26: gitbook: 未找到命令
    remote: web server pull at webserver at time: 2018年 04月 10日 星期二 15:36:45 CST.
    remote: ================================================
    To git@10.160.59.236:/home/data/git/gittest.git
    * [new branch]      master -> master


    成功 (39344 ms @ 2018/4/10 15:36:46)

    --

    看到 输出的 如 remote: ===============================================

    这几行,都是我们添加的那个 钩子 里面的 输出语句。 代表已经执行了钩子。


    fatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree.

    致命的:含糊不清的论证“起源/主人”:未知的版本或路径不在工作树中。

    ==

    ambiguous  模糊不清的。

    git.exe fetch -v --progress "origin"

    --

    git clone https://github.com/zce/music-player.git-b vue --depth 1

    最后的 1代表把最后一次的提交下载下来。


    --

    git fetch git://git.kernel.org/pub/scm/git/git.git maint

    从 git://git.kernel.org/pub/scm/git/git.git 从存储库中获取maint分支

    --

    无法打开 .git/FETCH_HEAD

    ==

    denied   拒绝 [dɪ'naɪəd]  第乃德

    reused  重新使用

    git access reused 

    --

    git  提交之后 怎么看到服务器

    ==

    shell 移除目录下所有文件 文件夹

    rm -rf *

    删除文件夹

    ==

    git clone /home/data/git/gittest.git -b master --depth 1

    ==

    rm -rf gittest

    git clone /home/data/git/gittest.git -b master

    #!/bin/sh
    
    
    #判断是不是远端仓库
    
    IS_BARE=$(git rev-parse --is-bare-repository)
    if [ -z "$IS_BARE" ]; then
    echo >&2 "fatal: post-receive: IS_NOT_BARE"
    exit 1
    fi
    
    unset GIT_DIR
    DeployPath="/var/www/hyfws"
    
    
    echo "====================我们的钩子==========================="
    cd $DeployPath
    echo "【正在部署测试的网站】deploying the test web"
    
    #git stash
    
    #git pull origin master
    
    rm -rf gittest
    git clone /home/data/git/gittest.git -b master
    #git fetch --all
    #git reset --hard origin/master
    
    #拉取到代码之后,构建
    #gitbook build
    #sleep 15
    
    time=`date`
    echo "【网站服务器拉取时间】web server pull at webserver at time: $time."
    echo "====================我们的钩子结束========================="
    
    钩子脚本里面写这个 测试ok

    ==


    shell rm 权限不够  

    没影响。。

    --



    展开全文
  • 在linux服务器部署git仓库

    千次阅读 2017-11-12 17:52:52
    1.在linux服务器上安装git使用yum安装yum install -y git安装完后,查看 Git 版本:git --version可以看到版本号,表示安装成功。2.创建 git 用户来管理 Git 服务创建用户:useradd git设置密码:passwd git3.创建...

    1.在linux服务器上安装git

    使用yum安装

    yum install -y git

    安装完后,查看 Git 版本:

    git --version

    可以看到版本号,表示安装成功。

    2.创建 git 用户来管理 Git 服务

    创建用户:

    useradd git

    设置密码:

    passwd git

    3.创建git仓库

    创建存放git仓库的文件夹:

    mkdir -p var/git/default.git
    

    初始化:

    git init --bare var/git/default.git

    把git仓库拥有者改为git:

    chown -R git:git var/git/default.git/

    到此,服务器git仓库部署成功,现在我们就可以在本地客户端,git克隆服务器上git仓库来进行代码管理和多人协作:

    git clone git@<服务器ip>:/var/git/default.git 

    克隆需要输入密码,密码为服务器添加的git用户密码。在这里推荐使用SourceTree,不仅拥有精美简洁的界面,还能记住密码,不用每次推送和拉取都输入密码。

    如果你下载安装了SourceTree最新的版本,而且一直卡在了用户注册或者登录页面,可以使用以下方法跳过此步骤:

    1.打开 我的电脑,在最上方的地址栏直接输入以下地址: %LocalAppData%\Atlassian\SourceTree\

    2.在这个目录下新建一个名为 accounts.json 的文件,输入一下代码,保存即可。

    [
      {
        "$id": "1",
        "$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity",
        "Authenticate": true,
        "HostInstance": {
          "$id": "2",
          "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount",
          "Host": {
            "$id": "3",
            "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount",
            "Id": "atlassian account"
          },
          "BaseUrl": "https://id.atlassian.com/"
        },
        "Credentials": {
          "$id": "4",
          "$type": "SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account",
          "Username": "",
          "Email": null
        },
        "IsDefault": false
      }
    ]

    5.修改git用户使不能登录到服务器

    为了服务器安全,之前在服务器端创建的 git 用户使其不允许 ssh 登录服务器
    vi /etc/passwd 编辑文件,找到:

    git:x:1000:1000::/home/git:/bin/bash

    修改为:

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

    注意这里的1000:1000用户标识号:组标识号,不同服务器创建可能不一样,这里只需要修改/bin/bash/bin/git-shell

    到这里,在linux服务器部署git仓库就已经完成了。

    6.利用钩子同步服务器代码

    如果在客服端提交代码希望在服务器同时更新,这里我们可以使用git仓库的hooks目录下新建一个post-receive文件来进行更新,具体操作如下:

    cd /var/git/default.git/hooks
    vi post-receive

    在post-receive里写入以下代码:

    #!/bin/bash
    git --work-tree=/home/website/wwwroot checkout -f

    接着键入ESC->eq 写入保存。同时把文件拥有者改为git,并且给git赋有执行权限:

    chown git:git post-receive
    chmod 744 post-receive

    /home/website/wwwroot 这里可以替换为你想更新的文件夹,同时要在该文件夹给git写入权限,这里我们可以把git用户加入root用户组,同时把要更新文件夹的用户组添加可写入权限:

    usermod -aG root git 
    chmod -R 775 /home/website/wwwroot
    展开全文
  • nginx 服务器搭建git

    千次阅读 2018-09-21 23:26:54
    1、服务器:阿里云CentOS 7.2(64位) + Git (version 1.8.3.1) 2、客户端:Windows 10 Pro(64位) + Git(version 2.11.0.windows.1) 3、服务器连接软件:Xshell 5 、安装git Linux作为服务器端系统,Windows...

    一、配置环境
    1、服务器:阿里云CentOS 7.2(64位) + Git (version 1.8.3.1)
    2、客户端:Windows 10 Pro(64位) + Git(version 2.11.0.windows.1)
    3、服务器连接软件:Xshell 5
    、安装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
    
    <b>客户端:</b>
    下载 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 仓库
    设置 /home/git/repository/gittest.git 为 Git 仓库
    
    
    
    [root@ceontOS home]# mkdir -p ./git/repository/gittest.git #在git用户目录下创建仓库目录repositroy,并且创建gittest.git项目测试目录
    [root@ceontOS home]# ls #查看/home/目录下有哪些用户目录
    admin git
    [root@ceontOS home]# cd git #进入git用户目录
    [root@ceontOS git]# ls #查看git用户目录下有哪些目录/文件
    repository
    [root@ceontOS git]# cd repository/ #进入repository仓库目录
    [root@ceontOS repository]# ls #查看仓库目录下的项目目录
    gittest.git
    [root@ceontOS repository]# git init --bare ./gittest.git #这步很重要,初始化项目测试目录
    Initialized empty Git repository in /home/git/repository/gittest.git/
    
    然后把 Git 仓库的 owner 修改为 git
    
    [root@ceontOS git]# ll #查看gittest.git项目文件夹的拥有者
    total 4
    drwxr-xr-x 3 root root 4096 Jan 13 13:08 repository #拥有者是root用户名
    [root@ceontOS git]# chown -R git:git repository #将拥有者改为git用户
    [root@ceontOS git]# ll #再次查看gittest.git项目文件夹的拥有者
    total 4
    drwxr-xr-x 3 git git 4096 Jan 13 13:08 repository #拥有者是git用户
    
    
    * **4、客户端 clone 远程仓库**
    先在本地Windows系统上创建一个存放git项目的文件夹,例如我的设置在:【D:\gittest】
    此处通过Git Bash来创建的,当然也可以手动创建该目录,然后进入该目录,启动Git Bash
    
    JayYang@YJ-PC MINGW64 ~/Desktop #在桌面打开的git bash
    $ cd /d #进入D盘
    JayYang@YJ-PC MINGW64 /d
    $ mkdir gittest #创建gittest文件夹
    JayYang@YJ-PC MINGW64 /d
    $ cd gittest/ #进入gittest文件夹
    JayYang@YJ-PC MINGW64 /d/gittest #显示当前在D:\gittest路径下
    $ git clone git@服务器公网IP地址:/home/git/repository/gittest.git #IP地址后面跟冒号,冒号后面是刚才初始化的项目文件夹的绝对路径
    
    ![](http://upload-images.jianshu.io/upload_images/2267589-7bedba534bdc9f04.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    当第一次连接到目标 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)
    1.  
    2. 如果不采用 SSH 公钥来进行验证,则每次都要输入密码,很麻烦,下面就来配置SSH公钥验证的方式来clone项目

    以上命令安装好了就可以正常使用————下面命令可以自己选择配置

    * **5、客户端创建 SSH 公钥和私钥**
    
    ssh-keygen -t rsa -C "695834706@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
    
    * **8、客户端再次 clone 远程仓库**
    
    git clone git@118.178.142.77:/home/git/repository/gittest.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
    1. 此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。

    git常用技巧(详细篇)
    一、把文件添加到版本库中。
    首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。

    1. 下面先看下demo如下演示:
    2.  
    3. 我在版本库testgit目录下新建一个记事本文件 readme.txt 内容如下:11111111
    4.  
    5. 第一步:使用命令 git add readme.txt添加到暂存区里面去。如下:

    1.  如果和上面一样,没有任何提示,说明已经添加成功了。
    2. 第二步:用命令 git commit -m "文件备注"告诉Git,把文件提交到仓库。

    1. 现在我们已经提交了一个readme.txt文件了,提交时候必须写备注,我们下面可以通过命令git status来查看是否还有文件未提交,如下:


    说明没有任何文件未提交,但是我现在继续来改下readme.txt内容,比如我在下面添加一行2222222222内容,继续使用git status来查看下结果,如下:

    上面的命令告诉我们 readme.txt文件已被修改,但是未被提交的修改。

    1. 接下来我想看下readme.txt文件到底改了什么内容,如何查看呢?可以使用如下命令:git diff readme.txt 如下:


    二:版本回退:

    1. 如上,我们已经学会了修改文件,现在我继续对readme.txt文件进行修改,再增加一行
    2.  
    3. 内容为33333333333333.继续执行命令如下:


    现在我已经对readme.txt文件做了三次修改了,那么我现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log 演示如下所示:

    git log命令显示从最近到最远的显示日志,我们可以看到最近三次提交,最近的一次是,增加内容为333333.上一次是添加内容222222,第一次默认是 111111.如果嫌上面显示的信息太多的话,我们可以使用命令 git log –pretty=oneline 演示如下:

     现在我想使用版本回退操作,我想把当前的版本回退到上一个版本,要使用什么命令呢?可以使用如下2种命令,第一种是:git reset —hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset —hard HEAD~100 即可。未回退之前的readme.txt内容如下:

    如果想回退到上一个版本的命令如下操作:

    再来查看下 readme.txt内容如下:通过命令cat readme.txt查看
    可以看到,内容已经回退到上一个版本了。我们可以继续使用git log 来查看下历史记录信息!
    由于ShowDoc每天只能上传十张图片。想学习更多操作请复制链接粘贴到浏览器查看
    https://blog.csdn.net/youzhouliu/article/details/78952453
    总结GIT常用的命令
    添加命令:
    git add . 全部提交
    git commit -m “备注注释”;
    git status 查看状态红变绿
    git push -u origin master 提交到服务器
    在服务器查看提交的日志文件 git log
     

    展开全文
  • 使用Docker搭建Git服务器, Gitblit 服务

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

    万次阅读 2018-05-23 10:02:39
    Centos搭建git服务器gitblit管理工具 1.软件安装包下载1.1 git-2.9.3.tar.gz1.2 gitblit-1.8.0.tar.gz2.准备工作2.1 依赖安装root用户安装# yum install -y gcc-c++ curl-devel expat-devel gettext-devel ...
  • 服务器搭建gitblit

    2018-12-14 15:42:13
    #云服务器搭建gitblit ##前言 最近公司新立了一个项目。但是,是一个甲方的项目。甲方要求代码放在他们的服务器上,但是我们用的是git进行管理,而甲方用的是SVN。于是我被分配了搭建git的任务。  首选当然是谷歌...
  • 基于docker搭建git服务器gitblit)

    千次阅读 2018-03-02 04:02:13
    前言:本人基于centos7的docker镜像,部署了一套gitblit的git服务器,并将该容器存为镜像分享给大家使用。docker母版镜像:centos7新增安装包:1、ifconfig指令安装包 2、vim指令安装包 3、gitblit相关安装包 4、...
  • 下载jdk 配置环境变量 。。。。省略 下载Gitblit ...找到Git目录下的data文件下的gitblit.properties文件,“记事本”打开 配置文件都在defaults.properties 打开defaults.properties 找到git.r...
  • 阿里云服务器git配置与使用方法

    千次阅读 2017-11-20 21:20:04
    阿里云服务器搭建GIT服务器 环境:ubuntu16.04 阿里云服务器 二、服务器端配置 需要用root用户来执行以下命令 1. 添加用户adduser git_xxx cd /home/git_xxx mkdir .ssh 2. 创建公钥文件touch ./.ssh/authorized_...
  • 上次介绍了使用安装的方式使用GitBilit搭建git服务器,这次介绍一个更简单的方式:使用gitblit 的war包1、安装git这里不是重点,请自行baidu。2、java 环境 以及tomcat安装 ,请参照Linux 服务器下 tomcat9的安装...
  • 如果想要用ubantu架设无限制权限(即不适用gitosis)的简单git服务器,实现git库下载clone,push等简单的基本功能, 可以直接使用git-daemon脚本 本地安装完sudo apt-get install git git-core之后没有安装git-...
  • 服务器使用git协议

    千次阅读 2012-10-24 10:23:36
     最近在服务器上搭建支持git协议的版本库,遇到了些麻烦(主要是因为对linux系统不太熟悉导致),在此小做笔记,以供自己和他人参阅。  我的环境如下表所示,我通过另一台机器克隆版本库来验证:git clone git://...
  • windows 下 gitblit 服务器无法启动,昨天还好好的,今天早上就无法启动了,不管是点击 gitblit.cmd 还是在计算机服务管理里面启动,都不行,不知道哪里出了问题? ...gitblit 服务因 操作成功完成。 服务特定错误...
  • 所以我就上网找了copssh+git的方案来搭建git本地服务器,接下来我安装了copssh,一路下来没有改什么东西 2、启动copssh控制面板,按照网上教程add了一个新用户也就是一开始安装时的那个用户SvcCOPSSH。 3、我把...
  • 服务器安装git、docker、docker-compose linux脚本 #git 环境安装 yum install git # docker 启动命令 sudo yum remove docker \ docker-client \ docker-client-latest \ ...
  • bat脚本启动git bash窗口,并执行命令

    千次阅读 2020-04-20 21:49:30
    某些情况下,需要使用windows服务器,但是使用cmd启动jar包的时候会乱码,可以通过使用git bash窗口启动并设置编码的方式来修正 二、使用说明 2.1 start.bat脚本 start D:\env\git\install\Git\git-bash.exe -c ...
  • Git Push 源码到服务器 Repo 同步源码 提交修改后的代码 一、软件环境 服务器端系统:Ubuntu 16.04 GitLab 软件:GitLab Community Edition 客户端系统:Ubuntu 14.04 Git 软件:Git 2.27.0 二、GitLab 服务端部署 ...
  • 1.6启动svn服务器 #svnserve -d -r /var/svn/svnrepos/ lz-test 1.7查看svn进程 # ps -ef|grep svn 1.8查看监听端口 # netstat -ln|grep 3690 1.9客户端访问svn服务器 客户端,...
  • Centos7搭建git服务器gitblit管理工具

    千次阅读 2017-06-27 14:15:59
    1.1 git-2.9.3.tar.gz 1.2 gitblit-1.8.0.tar.gz 2.准备工作 2.1 依赖安装 root用户安装 # yum install -y gcc-c++ curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel 
  • gitblit Git服务器

    千次阅读 2018-02-09 15:11:05
    gitblit Git服务器Git服务现在独树一帜,相比与SVN有更多的灵活性,最流行的开源项目托管网站Github上面,如果托管开源项目,那么就是免费使用的,但是闭源的项目就会收取昂贵的费用,如果你不缺米,那么不在本文...
  • 那么在生产的过程中为了更好的将每个人完成的地方完美的搭配起来,公司大多会采用比较合适的团队协作工具,早起svn的使用很普遍,近年出现了github社区之后很多公司转而使用git仓库进行高效的代码协作以及版本控制。...
  • linux以http方式搭建git服务器,即clone的方式为git clone http://xxxxxxxx。...因为很多服务器本身就启动了80端口,所以修改监听端口: vim /etc/httpd/conf/httpd.conf // 找到 Listen 80修改为: L...
  • git 服务器

    2012-02-29 13:14:58
    自己在ubuntu10.10建了个git 玩玩。根据网上的那些文章,走了不少弯路,记录下来过程: 1)安装 apt-get install git git-core 安装git apt-get install git-daemon-run 安装git deamon run 服务 apt-get ...
  • git 服务器设置

    2011-08-31 15:47:40
    一. 服务器端操作 1. 创建git服务器目录 mkdir -p /www/repositories cd /www/repositories 2. 初始化一个空的Git资源库, 如果需要的话,启动Git守护进程 $ GIT_DIR=myproj.git git i
  • 利用阿里云服务器结合Git+Nginx实现个人网站搭建部署       前言: 相信很多小伙伴们在平时学习编程的时候都有练习过大大小小的Demo。一般我们都会用Github来管理我们的这些项目。但是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,467
精华内容 39,786
关键字:

服务器启动git