我是一匹北方的狼 發表於 2019-6-2 15:30:00

Centos 7搭建Gitlab服务器超详细Centos 7搭建Gitlab服务器超详细(搭建成功)

<p>一、 安装并配置必要的依赖关系<br>在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问。</p>
<p>注意:用户不是管理员权限,出现如下警告</p>
<p>用户不在sudoers文件中此事将被报告</p>
<p>可以使用 su root 切换root权限</p>
<p>1.安装ssh</p>
<p>sudo yum install -y curl policycoreutils-python openssh-server</p>
<p><img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602151907806-487687156.png" alt=""></p>
<p>&nbsp;</p>
<p>若出现以下图片的信息则表示成功</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602151927086-1210131752.png" alt="">&nbsp;</p>
<p>2.将SSH服务设置成开机自启动,安装命令:sudo&nbsp;systemctl&nbsp;enable&nbsp;sshd&nbsp;&nbsp;</p>
<p>3.启动SSH服务,安装命令:sudo systemctl start sshd</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602151959880-1858636617.png" alt=""></p>
<p>4。安装防火墙(如果已经安装了防火墙并且已经在运行状态,则可直接进行第6步)</p>
<p>yum install firewalld systemd -y</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152057966-990437517.png" alt=""></p>
<p>若出现“完毕!”的字样,则表示安装成功</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152119525-1647899077.png" alt=""></p>
<p>5.开启防火墙,安装命令:service firewalld &nbsp;start</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152145085-1917007754.png" alt=""></p>
<p>6.添加http服务到firewalld,pemmanent表示永久生效,若不加--permanent系统下次启动后就会失效。</p>
<p>sudo firewall-cmd --permanent --add-service=http</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152209071-603040900.png" alt=""></p>
<p>7.重启防火墙,安装命令:sudo systemctl reload firewalld</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152236905-162907317.png" alt=""></p>
<p>8.接下来,安装Postfix以发送通知邮件,安装命令:sudo yum install postfix</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152257903-757266419.png" alt=""></p>
<p>&nbsp;</p>
<p>9.将postfix服务设置成开机自启动,安装命令:sudo systemctl enable postfix</p>
<p>10.启动postfix,安装命令:sudo systemctl start postfix</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152321613-1403836798.png" alt=""></p>
<p>在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>11.wget 用于从外网上下载插件</p>
<p>检查系统中是否已经安装wget,使用命令若出现下图wget相关版本描述则说明系统中已经安装wget 若报系统找不到命令说明wget未安装</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152349262-722861018.png" alt=""></p>
<p>若wget未安装则进行安装,安装命令:yum -y install wget</p>
<p><img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152411670-1557993202.png" alt="">&nbsp;</p>
<p>12.安装vim编辑器&nbsp; 安装命令:yum install vim -y</p>
<p>&nbsp;</p>
<p>二、添加GitLab镜像源并安装gitlab服务器</p>
<p>&nbsp;</p>
<p>1.添加gitlab镜像</p>
<p>wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152452877-2044071889.png" alt=""></p>
<p>2.安装gitlab&nbsp;安装命令:rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm</p>
<p>安装过程需要些时间,如果出现下图,则说明安装成功。(个人在安装时并未出现,但是也是成功的)</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152519433-1380373029.png" alt=""></p>
<p>4.修改gitlab配置文件指定服务器ip和自定义端口:</p>
<p>&nbsp;</p>
<p>vim&nbsp; /etc/gitlab/gitlab.rb</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152542885-129039959.png" alt=""></p>
<p>进入编辑器后按“i”键<span style="color: rgba(255, 0, 0, 1)">进入编辑状态</span>,修改完毕后,<span style="color: rgba(255, 0, 0, 1)">按ESC键退出编辑状态</span></p>
<p><span style="color: rgba(255, 0, 0, 1)">然后退出并保存</span>,命令输入“:wq”</p>
<p>ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口</p>
<p>&nbsp;</p>
<p>5.重置并启动GitLab</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>执行:</p>
<p>&nbsp;</p>
<p>gitlab-ctl reconfigure</p>
<p>&nbsp;</p>
<p>gitlab-ctl restart&nbsp;&nbsp;<span style="color: rgba(255, 0, 0, 1)"><br></span></p>
<p>&nbsp;</p>
<p>提示&nbsp; "ok: run:"表示启动成功</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152613519-91006106.png" alt=""></p>
<p>6.访问 GitLab页面</p>
<p>如果没有域名,直接输入服务器ip和指定端口进行访问</p>
<p>初始账户: root 密码:5iveL!fe</p>
<p><span style="color: rgba(255, 0, 0, 1)">第一次登录修改密码</span></p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152710997-600215188.png" alt=""></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;7、为了安全性考虑,需要创建public key</p>
<p>创建key</p>
<div class="cnblogs_code">
<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码"></span></div>
<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码"></span></div>
<pre># ssh-keygen   #一路回车
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
48:94:9a:65:cd:0f:f3:17:c6:dc:3c:28:0a:bb:47:98 root@git-node1
The key's randomart image is:
+--[ RSA 2048]----+
|      .+   o +   |
|   .= = . * +|
|   =.= * o . . |
|    o.E.o o .    |
|      .oS.   |
|      . .      |
|       .         |
|               |
|               |</pre>
<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码"></span></div>
<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码"></span></div>
</div>
<p data-anchor-id="l0t3">  8.复制id_rsa.pub公钥</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div id="highlighter_228403" class="syntaxhighlightercsharp">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="csharp plain"># cat ~/.ssh/id_rsa.pub</code></div>
<div class="line number2 index1 alt1"><code class="csharp plain">ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyVSAhs+ZBTEwv5nMwyoordV4VBy+DoCyGBJcjqkcfagRyyGUZvS57T4rhgSpz2csMTtxBXAyo0vJltxPr8McsZmcDZ8+t5qr22h9wHULFs5uB5/uZ6CDomm&lt;br&gt;/rVtJjiT2l1Uzh14De1CJDbNRPTCbxvcD5Mi7Ko29epymdt8agYqV2+ROynYaSjqcKxuo6pXD/cGskO7JTOkek2wxmTFOxFQR/Ec1LtVk8ilcesENzMdeU4Nwr2lec6Lr++qKXQuO7a3vB4958Hfhh1JlRI&lt;br&gt;ShDuHBOsFChG+vJim6tl123k7jjePHxJhUORhVMpmD4pMNwN+NYv1ta3J3ZSW6v5uWxw== root@git-node1</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p data-anchor-id="l0t3">  7.添加公钥至gitlab,如图1-6-1&nbsp;</p>
<p data-anchor-id="ehjv"><img title="" src="http://static.zybuluo.com/Xuliangwei8925/5gilp986bwsnwvjvnlr7tm7c/image_1ba739cqs1kj7v88hsu1v05ibi1n.png" alt="gongyao">&nbsp;</p>
<center data-anchor-id="p7my">图1-6-1添加服务器公钥</center>
<h3 id="12添加远程仓库" data-anchor-id="2dx4">三 、添加远程仓库</h3>
<p data-anchor-id="5jkh">1.gitlab创建仓库,进行远程同步,如图1-6-2&nbsp;<br><img title="" src="http://static.zybuluo.com/Xuliangwei8925/98rcdza39ajmk2ym7ydtf6wx/image_1ba739sh72rd1m6a1thm19k7dbi24.png" alt="image_1ba739sh72rd1m6a1thm19k7dbi24.png-49kB">&nbsp;</p>
<center data-anchor-id="bh71">图1-6-2gitlab创建远程仓库</center>
<p>&nbsp;</p>
<p data-anchor-id="hr8y">2.使用git remote 添加远程仓库地址,选择SSH方式克隆。</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1&nbsp;<span class="pun">~]#<span class="pln">&nbsp;cd demo<span class="pun">/<span class="pln">&nbsp;<span class="com">//必须是git init 初始化仓库目录</span></span></span></span></span></span></span></span></span></code></li>
<li class="L1"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 demo<span class="pun">]#<span class="pln">&nbsp;git remote add origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">gitxxx</span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></li>



</ol>
<h3 id="13修改远程仓库" data-anchor-id="jugg">四 、修改远程仓库</h3>
<p data-anchor-id="elnc">由于刚开始添加的远程仓库写错了url,现在通过如下命令进行url修改</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 demo<span class="pun">]#<span class="pln">&nbsp;git remote&nbsp;<span class="kwd">set<span class="pun">-<span class="pln">url origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></li>



</ol>
<h3 id="14查看远程仓库" data-anchor-id="ye6p">五、查看远程仓库</h3>
<p data-anchor-id="38cb">如果已经配置了远程仓库服务器,可以运行 git remote命令。它会列出你指定每一个远程服务器的简写。</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 demo<span class="pun">]#<span class="pln">&nbsp;git remote</span></span></span></span></span></span></code></li>
<li class="L1"><code>origin</code></li>



</ol>
<p data-anchor-id="ccer">也可以指定-v选项,会显示需要读写远程仓库git保存简写名称以及对应的URL地址。</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 demo<span class="pun">]#<span class="pln">&nbsp;git remote&nbsp;<span class="pun">-<span class="pln">v</span></span></span></span></span></span></span></span></code></li>
<li class="L1"><code><span class="pln">origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">fetch<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L2"><code><span class="pln">origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">push<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>



</ol>
<h3 id="15推送远程仓库" data-anchor-id="ywll">六、推送远程仓库</h3>
<p data-anchor-id="eu6g">将本地库更新内容推送至远程,用git push命令,实际上是将当前分支推送至远程仓库。&nbsp;<br>由于远程库是新建立空的,我们在第一次推送时候,git默认是不会把本地master关联至远端的master,所以我们需要加上-u参数,这样git不但会把本地的master分支内容推送至远程仓库的master分支,并且还会将本地的master分支和远程master分支关联起来。在以后推送或者拉取时就可以简化命令。</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 demo<span class="pun">]#<span class="pln">&nbsp;git push&nbsp;<span class="pun">-<span class="pln">u origin master</span></span></span></span></span></span></span></span></code></li>
<li class="L1"><code><span class="typ">Counting<span class="pln">&nbsp;objects<span class="pun">:<span class="pln">&nbsp;<span class="lit">5<span class="pun">,<span class="pln">&nbsp;<span class="kwd">done<span class="pun">.</span></span></span></span></span></span></span></span></span></code></li>
<li class="L2"><code><span class="typ">Compressing<span class="pln">&nbsp;objects<span class="pun">:<span class="pln">&nbsp;<span class="lit">100<span class="pun">%<span class="pln">&nbsp;<span class="pun">(<span class="lit">2<span class="pun">/<span class="lit">2<span class="pun">),<span class="pln">&nbsp;<span class="kwd">done<span class="pun">.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L3"><code><span class="typ">Writing<span class="pln">&nbsp;objects<span class="pun">:<span class="pln">&nbsp;<span class="lit">100<span class="pun">%<span class="pln">&nbsp;<span class="pun">(<span class="lit">5<span class="pun">/<span class="lit">5<span class="pun">),<span class="pln">&nbsp;<span class="lit">432<span class="pln">&nbsp;bytes&nbsp;<span class="pun">|<span class="pln">&nbsp;<span class="lit">0<span class="pln">&nbsp;bytes<span class="pun">/<span class="pln">s<span class="pun">,<span class="pln">&nbsp;<span class="kwd">done<span class="pun">.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L4"><code><span class="typ">Total<span class="pln">&nbsp;<span class="lit">5<span class="pln">&nbsp;<span class="pun">(<span class="pln">delta&nbsp;<span class="lit">0<span class="pun">),<span class="pln">&nbsp;reused&nbsp;<span class="lit">0<span class="pln">&nbsp;<span class="pun">(<span class="pln">delta&nbsp;<span class="lit">0<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L5"><code><span class="typ">To<span class="pln">&nbsp;git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git</span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L6"><code><span class="pln"><span class="pun">*<span class="pln">&nbsp;<span class="pun">[<span class="kwd">new<span class="pln">&nbsp;branch<span class="pun">]<span class="pln">&nbsp;master&nbsp;<span class="pun">-&gt;<span class="pln">&nbsp;master</span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L7"><code><span class="pun">分支<span class="pln">&nbsp;master&nbsp;<span class="pun">设置为跟踪来自<span class="pln">&nbsp;origin&nbsp;<span class="pun">的远程分支<span class="pln">&nbsp;master<span class="pun">。</span></span></span></span></span></span></span></code></li>



</ol>
<p data-anchor-id="db7r">如果推送冲突可以选择--force强行推送</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 xuliangwei<span class="pun">]#<span class="pln">&nbsp;git push origin&nbsp;<span class="pun">--<span class="pln">force</span></span></span></span></span></span></span></span></code></li>
<li class="L1"><code><span class="pun">如果一次都没有推送数据,可以选择—<span class="pln">all<span class="pun">一次全部推送至远程服务器</span></span></span></code></li>
<li class="L2"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 xuliangwei<span class="pun">]#<span class="pln">&nbsp;git push origin&nbsp;<span class="pun">--<span class="pln">all</span></span></span></span></span></span></span></span></code></li>



</ol>
<div class="md-section-divider">&nbsp;</div>
<h3 id="16克隆远程仓库" data-anchor-id="x1f7">七、克隆远程仓库</h3>
<p data-anchor-id="tcj7">如果现在仓库已经有开发好的项目,需要加入进来开发,可以先clone整个项目。</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 tmp<span class="pun">]#<span class="pln">&nbsp;git clone git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git</span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L1"><code><span class="pun">正克隆到<span class="pln">&nbsp;<span class="str">'git_demo'<span class="pun">...</span></span></span></span></code></li>
<li class="L2"><code><span class="pln">remote<span class="pun">:<span class="pln">&nbsp;<span class="typ">Counting<span class="pln">&nbsp;objects<span class="pun">:<span class="pln">&nbsp;<span class="lit">5<span class="pun">,<span class="pln">&nbsp;<span class="kwd">done<span class="pun">.</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L3"><code><span class="pln">remote<span class="pun">:<span class="pln">&nbsp;<span class="typ">Compressing<span class="pln">&nbsp;objects<span class="pun">:<span class="pln">&nbsp;<span class="lit">100<span class="pun">%<span class="pln">&nbsp;<span class="pun">(<span class="lit">2<span class="pun">/<span class="lit">2<span class="pun">),<span class="pln">&nbsp;<span class="kwd">done<span class="pun">.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L4"><code><span class="pln">remote<span class="pun">:<span class="pln">&nbsp;<span class="typ">Total<span class="pln">&nbsp;<span class="lit">5<span class="pln">&nbsp;<span class="pun">(<span class="pln">delta&nbsp;<span class="lit">0<span class="pun">),<span class="pln">&nbsp;reused&nbsp;<span class="lit">0<span class="pln">&nbsp;<span class="pun">(<span class="pln">delta&nbsp;<span class="lit">0<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L5"><code><span class="pun">接收对象中:<span class="pln">&nbsp;<span class="lit">100<span class="pun">%<span class="pln">&nbsp;<span class="pun">(<span class="lit">5<span class="pun">/<span class="lit">5<span class="pun">),<span class="pln">&nbsp;<span class="kwd">done<span class="pun">.</span></span></span></span></span></span></span></span></span></span></span></span></span></code></li>



</ol>
<h3 id="17拉取远程仓库" data-anchor-id="4zr0">八、拉取远程仓库</h3>
<p data-anchor-id="ksan">简单的说,这个命令会访问远程仓库,从中取出你还没有的数据,或者git pull之后还是没有的数据。&nbsp;<br>此前在添加的远程仓库的时候指定了仓库名origin,命令会自动将其添加为远程仓库并默认以origin为简写。&nbsp;<br>所以,git fetch origin相当于从远程获取最新版本到本地,然后比较本地master分支和远程master分支差别最后进行合并。</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 demo<span class="pun">]#<span class="pln">&nbsp;git fetch origin&nbsp;<span class="com">//拉取主分支最新版本(可以拉取其他分支)</span></span></span></span></span></span></span></code></li>
<li class="L1"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 demo<span class="pun">]#<span class="pln">&nbsp;git fetch origin dev&nbsp;<span class="com">//获取dev分支最新数据</span></span></span></span></span></span></span></code></li>



</ol>
<p data-anchor-id="ri89">拉取数据,在生产环境中见到比较多的还是git pull相当于是从远程获取最新版本并merge到本地</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 xuliangwei<span class="pun">]#<span class="pln">&nbsp;git pull origin master&nbsp;<span class="com">#拉取主分支最新版本(可以拉取其他分支)</span></span></span></span></span></span></span></code></li>
<li class="L1"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 xuliangwei<span class="pun">]#<span class="pln">&nbsp;git pull origin dev&nbsp;<span class="com">//获取dev分支最新数据</span></span></span></span></span></span></span></code></li>



</ol>
<p data-anchor-id="uf1r">上述命令其实相当于git fetch 和 git merge在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并&nbsp;<br>1.6.8更改远程仓库</p>
<p data-anchor-id="n1xa">如果想重新命名一个远程仓库名称。将test重命名为rainbow,可以通过git remote rename进行修改。&nbsp;<br>注意:这同时会修改你的远程分支名字。之前引用test/master的现在会引用rainbow/master&nbsp;<br>1.添加新远程分支,并赋予test为远程仓库名称</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 git_demo<span class="pun">]#<span class="pln">&nbsp;git remote add test git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git</span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L1"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 git_demo<span class="pun">]#<span class="pln">&nbsp;git remote&nbsp;<span class="pun">-<span class="pln">v</span></span></span></span></span></span></span></span></code></li>
<li class="L2"><code><span class="pln">origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">fetch<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L3"><code><span class="pln">origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">push<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L4"><code><span class="pln">test git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">fetch<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L5"><code><span class="pln">test git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">push<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>



</ol>
<p data-anchor-id="r8e2">2.修改test名称为rainbow名称</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 git_demo<span class="pun">]#<span class="pln">&nbsp;git remote rename test rainbow</span></span></span></span></span></span></code></li>
<li class="L1"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 git_demo<span class="pun">]#<span class="pln">&nbsp;git remote&nbsp;<span class="pun">-<span class="pln">v</span></span></span></span></span></span></span></span></code></li>
<li class="L2"><code><span class="pln">origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">fetch<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L3"><code><span class="pln">origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">push<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L4"><code><span class="pln">rainbow git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">fetch<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L5"><code><span class="pln">rainbow git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">push<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>



</ol>
<h3 id="19移除远程仓库" data-anchor-id="juof">九、移除远程仓库</h3>
<p data-anchor-id="23o1">因为一些变动不再使用一些特定的镜像,可以通过git remote remove 远程仓库名称,移除远程仓库&nbsp;<br>1.查看远程仓库</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 git_demo<span class="pun">]#<span class="pln">&nbsp;git remote&nbsp;<span class="pun">-<span class="pln">v</span></span></span></span></span></span></span></span></code></li>
<li class="L1"><code><span class="pln">origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">fetch<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L2"><code><span class="pln">origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">push<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L3"><code><span class="pln">rainbow git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">fetch<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L4"><code><span class="pln">rainbow git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">push<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>



</ol>
<p data-anchor-id="7bji">2.移除不再使用的rainbow远程仓库</p>
<ol class="linenums">
<li class="L0"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 git_demo<span class="pun">]#<span class="pln">&nbsp;git remote remove rainbow</span></span></span></span></span></span></code></li>
<li class="L1"><code><span class="pun">[<span class="pln">root@git<span class="pun">-<span class="pln">node1 git_demo<span class="pun">]#<span class="pln">&nbsp;git remote&nbsp;<span class="pun">-<span class="pln">v</span></span></span></span></span></span></span></span></code></li>
<li class="L2"><code><span class="pln">origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">fetch<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>
<li class="L3"><code><span class="pln">origin git@git<span class="pun">-<span class="pln">node1<span class="pun">:<span class="pln">root<span class="pun">/<span class="pln">git_demo<span class="pun">.<span class="pln">git&nbsp;<span class="pun">(<span class="pln">push<span class="pun">)</span></span></span></span></span></span></span></span></span></span></span></span></code></li>



</ol>
<div class="md-section-divider">&nbsp;</div>
<h3 id="110git远程仓库小结" data-anchor-id="w4ma">十、Git远程仓库小结</h3>
<p data-anchor-id="lxv8">  要添加一个仓库,首先必须知道仓库的地址,然后使用git remote add 命令添加远程仓库,也可使用git clone命令克隆。(Git支持多种协议,包括http、https,但通过ssh支持的原生git协议速度最佳。)&nbsp;</p>
<p data-anchor-id="lxv8"><br>  要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git,关联后,使用命令git push -u origin master第一次推送master分支的所有内容,此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改</p>
<ol class="linenums"><ol class="linenums">
<li class="L0"><code># git remote add #添加(关联)远程库</code></li>
<li class="L1"><code># git remote set-url #修改远程仓库</code></li>
<li class="L2"><code># git clone #克隆远程仓库项目</code></li>
<li class="L3"><code># git remote #查看指定远程仓库命名简写</code></li>
<li class="L4"><code># git remote –v #查看远程仓库详细信息以及名称对应URL</code></li>
<li class="L5"><code># git push -u remote master #第一次推送master分支的所有内容</code></li>
<li class="L6"><code># git fetch remote #下载远程仓库的所有变动</code></li>
<li class="L7"><code># git pull remote #拉取主分支最新版本(可以拉取其他分支)</code></li>
<li class="L8"><code># git push remote --force #强行推送当前分支至远程分支,及时冲突</code></li>
<li class="L9"><code># git push remote --all #推送所有分支到远程仓库</code></li>
<li class="L0"><code># git remote rename #修改远程仓库名称</code></li>
<li class="L1"><code># git remote remove #删除远程仓库名称以及URL地址</code></li>



</ol></ol>
<p>&nbsp;</p>
<p>十一、安装过程遇见的那些坑<br>一、在CentOS里面安装软件,提示软件已安装,但是rpm -q和-e都是提示包没有安装</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; 查看与rpm包相关的文件和其他信息&nbsp;&nbsp; rpm -qa | grep 包名</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152739574-176881303.png" alt=""></p>
<p><span style="color: rgba(255, 0, 0, 1)">查询包是否被安装,命令:rpm -q 包名</span></p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152757922-1115159959.png" alt=""></p>
<p>删除软件包,命令:rpm -e 包名</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1178498/201906/1178498-20190602152816761-1020390180.png" alt=""></p>
<p>运行以上三步,把原来的包删除掉重新下载和安装<br><br></p>
<p>&nbsp;</p>
<p>服务管理:</p>
<p><span style="color: rgba(255, 0, 0, 1)">&nbsp; 查看服务状态:<em>gitlab</em>-ctl status</span></p>
<p><span style="color: rgba(255, 0, 0, 1)">&nbsp; 开启服务: gitlab-ctl start</span></p>
<p><span style="color: rgba(255, 0, 0, 1)">&nbsp; 关闭服务:<em>gitlab</em>-ctl stop&nbsp;</span></p>
<p><span style="color: rgba(255, 0, 0, 1)">关闭gitlab的自动启动 :<span class="hljs-selector-tag">systemctl <span class="hljs-selector-tag">disable <span class="hljs-selector-tag">gitlab-runsvdir<span class="hljs-selector-class">.service</span></span></span></span></span></p>
<p><span style="color: rgba(255, 0, 0, 1)">开启gitlab的自动启动:</span></p>
<ol class="hljs-ln">
<li>
<div class="hljs-ln-code">
<div class="hljs-ln-line"><span class="hljs-selector-tag" style="color: rgba(255, 0, 0, 1)">systemctl <span class="hljs-selector-tag">enable <span class="hljs-selector-tag">gitlab-runsvdir<span class="hljs-selector-class">.service</span></span></span></span></div>



</div>



</li>
<li>
<div class="hljs-ln-numbers"><span style="color: rgba(255, 0, 0, 1)">&nbsp;<span class="hljs-selector-tag">systemctl <span class="hljs-selector-tag">start <span class="hljs-selector-tag">gitlab-runsvdir<span class="hljs-selector-class">.service</span></span></span></span></span></div>



</li>
<li>
<div class="hljs-ln-numbers"><span style="color: rgba(255, 0, 0, 1)">&nbsp;<span class="hljs-selector-tag">gitlab-cmd <span class="hljs-selector-tag">start</span></span></span></div>



</li>



</ol><br><br>
来源:https://www.cnblogs.com/zhangycun/p/10963094.html
頁: [1]
查看完整版本: Centos 7搭建Gitlab服务器超详细Centos 7搭建Gitlab服务器超详细(搭建成功)