如何在mac下远程搭建git服务器?

如何在mac下远程搭建git服务器?,第1张

Mac好用的GIt管理器推荐:TowerMac版

TowerforMac是应用于macos平台上一款非常强大的Git客户端,Git是目前最流行的版本管理工具之一,TowerGit具有强大的Git资源库管理、版本控制、分支管理等等,并且能够和Xcode、github、Beanstalk、BBEdit等软件无缝结合使用!

TowerMac版

TowerforMac软件特色

1、便于使用

无需记住复杂的命令(及其参数)。Tower使许多高级 *** 作像拖放一样简单。

2、撤消一切

撤消本地更改

恢复旧版本

还原提交

恢复已删除的提交

撤消分支删除

3、清晰的可视化,更好的理解

Tower的清晰视觉界面非常有用-并且使复杂场景更容易理解。

4、自信地使用Git

以简单,直观的方式解决合并冲突

立即查看哪些提交尚未与遥控器同步

停止使用SSH密钥,用户名,密码和身份验证令牌进行摔跤

1创建Gitblit安装目录 首先我们将在我们的服务器上建立一个目录,并在该目录下安装最新的Gitblit。 $ sudo mkdir -p /opt/gitblit $ cd /opt/gitblit 创建gitblit目录 2 下载并解压 现在,我们将从Gitblit官方站点下载最新版的Gitblit。

为有读写权限的用户建立一个分组。根据你的 *** 作系统,你可以用groupadd命令来实现,用vigr来编辑分组文件,或者直接编辑/etc/group文件。在最后,你会在/etc/group文件中看到如下一行

1
repogroup::10005:marry,john,violet
其中,repogroup是准许接入这个仓库的组的名字。10005是一个独一无二的分组识别数字,marry,john,violet则是获准接入这个仓库的用户。
决定Git仓库的路径。它既可以放在你的home路径下(eg /home/yourname/gitroot),也可以放在一个专用的路径下(eg /var/gitroot)
配置权限,让Git用户可以访问这个目录

1
2
chmod g+rx /path-to/gitroot
chown :grouprepo /path-to/gitroot
建立新的Git仓库,叫做newrepo

1
2
cd /path-to/gitroot
git init --bare newrepogit
建立路径认证,以允许用户组访问,同时有针对性的设置Git

1
2
3
4
5
cd newrepogit
chown -R :grouprepo
git config coresharedRepository group
find -type d -print0 | xargs -0 chmod 2770
find -type f -print0 | xargs -0 chmod g=u
设置提交(commit)的email通知(commit是一条命令),这样当有新的修改提交到仓库的时候,开发者们将会收到一封关于修改内容一览的电子邮件。

1
2
3
4
5
6
7
echo 'One-line project description' >description
git config --local hooksmailinglist email-a@examplecom<script cf-hash="f9e31" type="text/javascript">
/ <![CDATA[ /!function(){try{var t="currentScript"in documentdocumentcurrentScript:function(){for(var t=documentgetElementsByTagName("script"),e=tlength;e--;)if(t[e]getAttribute("cf-hash"))return t[e]}();if(t&&tpreviousSibling){var e,r,n,i,c=tpreviousSibling,a=cgetAttribute("data-cfemail");if(a){for(e="",r=parseInt(asubstr(0,2),16),n=2;alength-n;n+=2)i=parseInt(asubstr(n,2),16)^r,e+=StringfromCharCode(i);e=documentcreateTextNode(e),cparentNodereplaceChild(e,c)}}}catch(u){}}();/ ]]> /</script>,email-b@examplecom<script cf-hash="f9e31" type="text/javascript">
/ <![CDATA[ /!function(){try{var t="currentScript"in documentdocumentcurrentScript:function(){for(var t=documentgetElementsByTagName("script"),e=tlength;e--;)if(t[e]getAttribute("cf-hash"))return t[e]}();if(t&&tpreviousSibling){var e,r,n,i,c=tpreviousSibling,a=cgetAttribute("data-cfemail");if(a){for(e="",r=parseInt(asubstr(0,2),16),n=2;alength-n;n+=2)i=parseInt(asubstr(n,2),16)^r,e+=StringfromCharCode(i);e=documentcreateTextNode(e),cparentNodereplaceChild(e,c)}}}catch(u){}}();/ ]]> /</script>,
git config --local hooksemailprefix '[DI-PR] '
git config --local hooksshowrev "git show -C %s; echo"
git config --local hooksemailmaxlines 100
通过设置一个称为钩子(hook)的东东,来创建这些email通知。

首先我们分别在Git服务器和客户机中安装Git服务程序(刚刚实验安装过就不用安装了):
[root@linuxprobe ~]# yum install git
Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management You can use subscription-manager to register
Package git-1831-4el7x86_64 already installed and latest version
Nothing to do
然后创建Git版本仓库,一般规范的方式要以git为后缀:
[root@linuxprobe ~]# mkdir linuxprobegit
修改Git版本仓库的所有者与所有组:
[root@linuxprobe ~]# chown -Rf git:git linuxprobegit/
初始化Git版本仓库:
[root@linuxprobe ~]# cd linuxprobegit/
[root@linuxprobe linuxprobegit]# git --bare init
Initialized empty Git repository in /root/linuxprobegit/
其实此时你的Git服务器就已经部署好了,但用户还不能向你推送数据,也不能克隆你的Git版本仓库,因为我们要在服务器上开放至少一种支持Git的协议,比如>首先这里我们安装openssh-server openssh-client,如果你用的是VPS之类的一般都默认安装好了,不过运行一个这个命令不会有错的,如果有安装就会提示已安装。
sudo apt-get -y install openssh-server openssh-client
安装git,在这个核心软件,不可或缺。
sudo apt-get -y install git
添加gitolite用户和同名用户组,加上--system参数,用户就不会在登陆界面显示。
sudo adduser --system --shell /bin/sh --group --disabled-password --home /home/gitolite gitolite
生成ssh key,一路回车下来。
ssh-keygen -t rsa
将你当前用户的ssh pub key复制到/tmp下备用,由于我用的是桌面版在同一台机器上。
cp ~/ssh/id_rsapub /tmp/ubuntugegepub
如果你是ssh远程登陆到服务器上安装,就要把你本地的key复制到远程的机器上
scp ~/ssh/id_rsapub gitoliteserver:/tmp/ubuntugegepub
安装gitolite,在ubuntu中已经集成了,不用自己去下载。
sudo apt-get -y install gitolite
切换到gitolite用户环境中,因为我要以gitolite用户身份去初始化安装。
sudo su - gitolite
执行初始化安装gitolite。
gl-setup /tmp/ubuntugegepub
把管理库gitolite-admin克隆过来就可以开始gitolite用户及代码库的管理了,如果不能克隆,那么就说明初始化的ssh pub key错了,如图就是成功了。
git clone ssh://gitolite@localhost/gitolite-admingit

1、打开控制面板->管理工具->服务项目,禁用Windows防火墙服务。
2、打开控制面板->管理工具,双击“路由和远程访问”。然后右键点击服务器图标,再点击“配置并启用路由和远程访问”。
3、在“路由和远程服务器安装向导”中,选择“自定义配置”。
4、勾选“***访问”和“NAT和基本防火墙”。
5、点击“完成”。系统提示“要开始服务吗?”,选择“是”。
6、接下来开始配置路由和远程访问,我们先点击本地服务旁边的+按钮,把左侧菜单展开,再点击IP路由选择旁边的+按钮。
7、下面配置静态IP地址。右键点击本地服务,点击属性,再点击IP选项卡。
8、点选“静态地址池”,点击“添加”。输入一个起始IP地址和结束IP地址范围,推荐输入1921681100到1921681254这个范围,因为192168段属于本地保留IP段。最后点击“确定”。
9、右键点击“静态路由”,再点击“新建静态路由”。
10、目标和网络掩码都输入0,网关请和TCP/IP属性中的默认网关保持一致。
11、删除“DHCP中继代理程序”中的“内部”项目。
12、然后右键点击“DHCP中继代理程序”,再点击“新增接口”。
13、选择“本地连接”,再点击“确定”,然后在d出的对话框中点击“确定”。
14、右键点击“NAT/基本防火墙”,再点击“新增接口”,然后选择“本地连接”,点击“确定”。
15、在d出的对话框中先点选“公共接口连接到Internet”,再勾选“在此接口上启用NAT”,最后点击“确定”。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12674566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存