问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么在自己的服务器上建立git仓库

发布网友 发布时间:2022-04-22 00:15

我来回答

1个回答

热心网友 时间:2022-04-11 22:46

1.架设Git服务器我们以Ubuntu为例。首先,在git服务器上创建一个名为'git'的用户,并为其创建一个.ssh目录。并将其权限设置为仅git用户有读写权限$sudoadsergit$sugit$cd$mkdir.ssh$chmod700.ssh接下来,把开发者的SSH公钥添加到这个用户的authorized_keys文件中。假设你通过电邮收到了几个公钥并存到了临时文件里。重复一下,公钥大致看起来是这个样子:$cat/tmp/id_rsa.john.pubssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4LojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4kYjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9EzSdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myivO7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPqdAv8JggJICUvax2T9va5gsg-keypair只要把它们逐个追加到authorized_keys文件尾部即可,同时将authorized_keys设置为仅git用户有读写权限。$cat/tmp/id_rsa.john.pub>>~/.ssh/authorized_keys$cat/tmp/id_rsa.josie.pub>>~/.ssh/authorized_keys$cat/tmp/id_rsa.jessica.pub>>~/.ssh/authorized_keys$chmod600~/.ssh/authorized_keys现在可以用--bare选项运行gitinit来建立一个裸仓库,这会初始化一个不包含工作目录的仓库。$cd/opt/git$mkdirproject.git$cdproject.git$git--bareinit这时,Join,Josie或者Jessica就可以把它加为远程仓库,推送一个分支,从而把第一个版本的项目文件上传到仓库里了。值得注意的是,每次添加一个新项目都需要通过shell登入主机并创建一个裸仓库目录。我们不妨以gitserver作为git用户及项目仓库所在的主机名。如果在网络内部运行该主机,并在DNS中设定gitserver指向该主机,那么以下这些命令都是可用的:#在John的电脑上$cdmyproject$gitinit$gitadd.$gitcommit-m'initialcommit'$gitremoteaddorigingit@gitserver:/opt/git/project.git$gitpushoriginmaster这样,其他人的克隆和推送也一样变得很简单:$gitclonegit@gitserver:/opt/git/project.git$vimREADME$gitcommit-am'fixfortheREADMEfile'$gitpushoriginmaster用这个方法可以很快捷地为少数几个开发者架设一个可读写的Git服务。作为一个额外的防范措施,你可以用Git自带的git-shell工具*git用户的活动范围。只要把它设为git用户登入的shell,那么该用户就无法使用普通的bash或者csh什么的shell程序。编辑/etc/passwd文件:$sudovim/etc/passwd在文件末尾,你应该能找到类似这样的行:git:x:1000:1000::/home/git:/bin/sh把bin/sh改为/usr/bin/git-shell(或者用whichgit-shell查看它的实际安装路径)。该行修改后的样子如下:git:x:1000:1000::/home/git:/usr/bin/git-shell现在git用户只能用SSH连接来推送和获取Git仓库,而不能直接使用主机shell。尝试普通SSH登录的话,会看到下面这样的拒绝信息:$sshgit@gitserverfatal:WhatdoyouthinkIam?Ashell?Connectiontogitserverclosed.这里提供的方法,组内所有成员对project都有读写权限,也就是说每个分支都可以push代码,如果需要更加细致的权限控制,请使用Gitosis或者Gitolite。2.搭建Gitweb安装gitweb之后就可以通过网站访问我们的项目了。就像gitweb.conf#pathtogitprojects(.git)$projectroot="/opt/git";至此gitweb就可以使用了,现在可以通过config[core]repositoryformatversion=0filemode=truebare=true[hooks]mailinglist="example@gmail.com,example2@gmail.com"#收件人列表envelopesender=project.git@example.com#送件人地址emailprefix="[Projectcommit]"#邮件标题前缀showrev="gitshow-C%s;echo"#不只显示有变化的文件,同时也显示改变的内容为了使邮件显示的更清楚,还要修改一下工程目录当中的description文件,在description文件中,默认第一行是项目名称,所以要在第一行填入该项目的名称,这个在邮件中会有显示。$vim/opt/git/project.git/descriptionProject_A
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎样让孩子主动找老师补课? 表格列求和公式怎么设置 求和函数公式怎么输入 北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 linux如何搭建git vue-cli与后台给的接口有跨域.跨域怎么配置 vue-cli 怎么使用 web Worker python 怎么从excel中读取数据 vue-cli在build之后,打开页面,api都报错404是怎... python读取excel文件,将每一行都保存为一个列表。... vue-cli怎么再次开启服务 全局安装过一个vue-cli第二次怎么调用 如何将python导入excel,设置字号 vue-cli build 完成后 后台如何应用? python导入excel vue-cli 里面建立的.vue文件的style部分 引用根目... 怎么用python读取txt文件里指定行的内容,并导入excel vue-cli怎么引入.scss文件 vue-cli 静态html页面怎么加载 如何用python将网页上的表格导入excel Python数据导入进excel vue-cli创建的项目里,如何将插件引入并使用? python将txt导入到excel 如何改造vue-cli实现多页面应用 如何在服务器上搭建git服务器 如何在服务器上配置git服务器 如何在windows上架设Git服务器 如何在云服务器windows上搭建git 如何搭建git版本库 CentOS系统怎样搭建Git版本控制服务器 如何在windows上搭建git服务器 打印机都需要硒鼓吗? 针式打印机的介绍 所有的打印机都需要硒鼓嘛 4个意识和4个自信的内容 激光打印机、喷墨打印机、针式打印机分别配什么耗材? 党的十九大报告提出的坚定四个自信四个意识分别指... 爱普生二手针式打印机需要更换硒鼓么 喷墨打印机要用到打印机硒鼓吗 各类打印机用什么硒鼓 希望能具体 详细 谢谢. 针式打印机用墨盒吗? 打印机用硒鼓省钱还是色带省钱? 求针式打印机与喷墨打印机的区分方法 想自学会计,该怎么入手?