git搭建远程仓库

5 篇文章 2 订阅

前言:我们现在搭建远程仓库,常见的,是去github、gitlab、gitee等这类第三方平台网站上进行部署。咱就顺道说说这三个的区别。

github 是面向全世界的,由国外开发的,基本上放在上面都是开源的,私人仓库好像是要收费的;

gitlab 同github一样,但是他的私人仓库是免费了,基于github还增加了许多新特性;还有一点是,他支持部署在自己的服务器上;

gitee 是国内开发的,也是支持开源仓库和私有仓库,和github一样,是需要部署在这个平台上的。

gitee相信大家使用的会比较多,因为是国内开发的,访问效率是会比github快的,但因为他也是需要部署在第三方平台上,就等于是,我们的项目代码,这些资源都存到别人哪里去了,有时候考虑到安全性、隐私性,所以gitlab的优势就出来了。因为gitlab是可以部署在我们自己的服务器上。可以理解为,我们使用的依然是git,不过安装了gitlab官网的软件,我们可以在自己的服务器上视图化来进行管理,就跟"宝塔"是一样的。

但是!!!

咱们今天不讲gitlab,而是纯git来部署远程仓库。

场景:

假设,我们开发一个项目,我们一般都是在本地敲代码的,完成后再push上去,那么push的远程仓库,就需要搭建了。再假设,我们不使用上面的三个,而是纯git来部署。

解释:为什么不使用上面三个,而是纯git来部署呢。因为我们不想托管在第三方平台,而是在自己服务器上部署,这样资源就不会泄露出去。

我们搭建远程仓库,因为使用的是linux操作系统,所以需要了解并会一些Linux的命令,因为本次流程会涉及。

来啦来啦,正题来啦!

服务器是linux,服务器是linux,服务器是linux,三遍 三遍 三遍!!!

linux版本信息:

LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID:    CentOS
Description:    CentOS Linux release 7.9.2009 (Core)
Release:    7.9.2009
Codename:    Core

git版本信息:

git version 2.38.1

1. 创建git账号

        1) 使用 useradd 命令创建一个账号

useradd git 

如果什么都没提示,那就是创建成功。如果该账号此前已经创建过,那么可能会提示:

                (1) useradd: warning: the home directory already exists. 主目录已存在
                (2) Not copying any file from skel directory into it. 没有复制
                (3) Creating mailbox file: File exists 邮箱文件已存在

如果这个账号以前创建过,并且删除过,提示这些也就没关系,也是正常创建账号,只是会提示此前已经有过该账号的信息。

        2) 使用 cat /etc/passwd 就能看见新创建的账号

cat /etc/passwd

会显示出所有的账号信息,我们是刚创建新的账号,所以会在最后一行看见。

2. 配置SSH

备注:这里的配置很重要,请不要随意删除文件修改内容等

        1) 输入命令进入 ssh文件

#进入ssh文件夹
cd /etc/ssh/

#显示所有文件/文件夹
ls

        2) 在这里我们能看见一个"sshd_config"文件,使用vim 将其打开并编辑

vim sshd_config

修改配置

StrictModes no  #由yes改为no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys #这里要取消注释

我的服务器修改前,记得是:

         StrictModes 默认为 yes,默认情况下是注释掉了的,我们将其释放并改为no

        RSAAuthentication 是没有的,需要我们直接添加

        PubkeyAuthentication 默认是 yes 不过是注释了的,需要释放

        AuthorizedKeysFile 默认有可能注释了,需要释放

3. 重启SSH

第二步配置做完后,需要重启SSH配置才能生效

注意呀!一定要检查好修改的配置内容,检查好 检查好 检查好!

重启SSH命令:

service sshd status 查看状态
service sshd restart 重启服务

status 查看状态,看到 Active: active (running)  这类时,代表正在运行中。

restart 重启服务,看到 Redirecting to /bin/systemctl restart sshd.service  就代表重启成功。

然后再 status 看一下状态,可以看到 Active: active (running) 后面会跟一个重新运行的时间,是当前的时间就是OK的,代表重启成功。

4. AuthorizedKeysFile 中的 .ssh/authorized_keys

从第二步修改配置时,最后有一个 AuthorizedKeysFile,这个是"授权密钥文件",配置文件中能看到,它是放在 ".ssh/authorized_keys" 这个文件里的。

这里要注意了,我们使用的当前账号,一般情况下,都是root,所以这个文件的路径在:root/.ssh/authorized_keys

但是我们是创建了一个git账号来玩的,所以就不能在root的路径里,而是要去找到 git账号的路径。

返回到根目录,我们查看,使用 "ls"命令查看

cd /  返回根目录
ls  查看当前位置下的目录

 我们就能看到,有一个 "home" 文件夹,进入 home ,再使用 ls,能看到我们之前创建的 git 账号文件夹。

这个 git 文件夹下,基本上是空目录,"其实使用 ls -al 命令还能看到一些隐藏文件,但我们并不需要"

返回到上面说的,AuthorizedKeysFile 文件,它指向的是文件是放在 ".ssh/authorized_keys", 所以我们需要在 git 文件夹里,创建 ".ssh"文件夹,然后在 ".ssh"文件夹里再创建 "authorized_keys" 文件

先用 pwd 看一下我们目前所处的位置:

pwd

使用 mkdir 创建 ".ssh"文件

再使用 ls -al 查看

mkdir .ssh 创建目录

ls -al 查看

 进入 ".ssh"目录

cd .ssh 进入目录

pwd 查看当前位置

创建文件 "authorized_keys"

touch authorized_keys 创建文件

ls 查看

文件创建好了之后,我们可以先消停一下了,先喝口水。。。

5. 文件权限 

回到git目录下,我们能看到,.ssh 这个目录是root创建的,权限也是root的

但它应该是git账号的,所以我们需要把它指定给git,".ssh"目录的权限得是700,并且需要指定给git用户,命令:

chown -R git:git .ssh 指定给git
chmod -R 700 .ssh 修改目录权限

修改后,就能看到,目录权限和用户跟之前是不同的。

修改了".ssh"目录之后,"authorized_keys"文件也需要修改,它是600的权限

cd .ssh  进入目录
ls -al 查看

能看到,用户已经是git了,并且权限也是700,因为我们上面使用 chown -R,chmod -R,这里的"-R" 代表当前目录及下面的所有子目录文件全都修改。

权限是700,需要修改为600:

chmod 600 authorized_keys 修改文件权限

ls -al 查看

权限和之前的就不同了,成功。

6. 搭建远程仓库(裸仓库)

假设我们在这个目录下搭建远程仓库

 先创建一个 git 目录,主要是做好一个分类。

mkdir git 创建目录

ls 查看

然后我们进入 git 目录

cd git 进入目录

 开始搭建一个远程仓库,也叫"裸仓库"

git init --bare project.git

 这样也就搭建好了一个远程仓库,可以进入这个目录看一下

cd project.git

ls 

这个远程仓库也就是"裸仓库",它不能进行 push 和 pull,可以理解为一个不能操作的"仓库",它只进行存储,不进行其他的操作。

比如,lucky同学和baby同学,lucky今天更新了代码,push上去了,就会进入到这个仓库,baby同学就可以进行pull 获取到这些内容,而baby同学push上去后,lucky同学也能pull。

如果这个时候,我们的项目,还有开发环境、测试环境、生产环境,这三个环境,也只是pull 就可以了,它们pull的数据,其实也是从这个"裸仓库"中拿到的。

到这里其实也就差不多完了。。。 但是还有一点,权限呀~~~

 这里我们能看到,因为是root账号创建的,所以它的权限是给的root,而我们是用的git账号,所以要将这个目录的权限给到git

chown -R git:git project.git

7. 服务器上clone仓库

好了,我们的远程仓库搭建好了,那么我们现在就需要 git clone ,将这个远程仓库进行关联。

因为我们这个仓库,是部署在我们服务器上的,如果我们的项目,也在这台服务器上,那么就比较简单了。

先回到"wwwroot"目录,跟 git 目录同级的

然后直接来一手 "git clone" 让它防不胜防

git clone /www/wwwroot/git/project.git 克隆

 就能看到,clone 成功,也出现了该目录,我们进入 project 目录看一下

 因为是一个空的仓库,所以我们需要进行一次操作:

touch README.md 创建文件

git add . 提交到缓存区

git commit -m "first commit" 提交到本地库

如果在 commit 时,发生以下错误,是因为我们git还没有设置 用户、邮箱

 那我们就需要设置以下 git的用户邮箱了:

git config --global user.email "you@example.com" 邮箱
git config --global user.name "Your Name" 用户
git config -l 查看

 然后我们再进行 commit 试一下呢

git commit -m "first commit"

 好的,成功了!!!

不过这里也只是本地库,所以我们需要补充,提交到远程仓库里,使用下面的命令:

git push origin  提交到远程

git branch -a 查看本地分支、远程分支

好了 大功告成!!!!!

等等喔,上面只是说服务器上的部署好了,那我们本地的呢???

8. 本地clone远程仓库

其实我们本地跟上面的步骤是一样的,唯独要注意两点

1). 因为不是同一个环境下,所以我们想 clone 这个远程仓库,需要提交我们本地的 ssh 公钥。一般存放在C盘/用户/.ssh 

2). git clone 时,就不能直接像上面那样 "/www/wwwroot",因为不是同一个环境下,所以我们需要指定服务器的IP,或者域名

先来处理第一点

我这边是Windows11系统,所以就拿Windows10 / Windows11 举例,在 "C:\Users\我的\.ssh" 下找到 "id_rsa.pub",打开文件,里面的内容进行复制 (如果本地没有ssh,要么是没有找到,要么是没有生成,需要去了解下生成ssh)

然后我们回到部署的远程仓库服务器里,找到这个文件

 

 使用 vim 进行编辑,将我们复制的公钥放进去

vim authorized_keys  编辑文件

这里我没有附图说明具体操作,因为是隐私操作。其实也就是将Windows中我们的ssh公钥 放进去,保存好就行。

接着第二点

在本地时,我们打开 "git Bash here" 或者 cmd 终端,输入:

git clone git@127.0.0.1:/www/wwwroot/git/project.git

"127.0.0.1" 请将这个替换成我们的服务器IP或者域名。

拉取成功

可以看到,在linux服务器上 commit 过的记录,这边也有。

撒花~

### 回答1: 要在Linux搭建Git远程仓库,需要按照以下步骤进行操作: 1. 安装Git:在Linux上安装Git,可以使用命令行工具或者包管理器进行安装。 2. 创建Git用户:为了安全起见,最好为Git创建一个专门的用户,用于管理Git仓库。 3. 创建Git仓库:使用Git命令创建一个空的Git仓库,可以在本地或者远程服务器上创建。 4. 配置Git仓库:为Git仓库设置一些基本的配置信息,如用户名、邮箱等。 5. 克隆Git仓库:在本地或者其他服务器上克隆Git仓库,可以使用SSH或者HTTP协议进行克隆。 6. 推送代码:将本地代码推送到Git仓库中,可以使用Git命令或者Git客户端进行操作。 7. 拉取代码:从Git仓库中拉取代码到本地,可以使用Git命令或者Git客户端进行操作。 以上是在Linux搭建Git远程仓库的基本步骤,具体操作可以根据实际情况进行调整。 ### 回答2: 在Linux系统中,我们可以通过Git搭建一套远程仓库,以方便团队进行代码的共享和管理。下面是一个简单的步骤: 1. 安装Git:在Linux系统中使用以下命令安装Git: ``` sudo apt-get install git ``` 2. 创建git用户:使用以下命令创建一个名为git的用户: ``` sudo adduser git ``` 3. 创建Git仓库:在git用户的home目录下创建仓库文件夹,例如: ``` sudo mkdir /home/git/repo.git ``` 4. 初始化仓库:使用以下命令初始化仓库: ``` sudo git init --bare /home/git/repo.git ``` 5. 设置仓库访问权限:在仓库目录下使用以下命令设置权限: ``` sudo chown -R git:git /home/git/repo.git sudo chmod -R 755 /home/git/repo.git ``` 6. 创建SSH密钥:使用以下命令在本地机器上创建SSH密钥: ``` ssh-keygen ``` 7. 将公钥添加至仓库:将生成的公钥(~/.ssh/id_rsa.pub)添加至git用户的.home目录下的authorized_keys文件中,例如: ``` sudo su git cd /home/git mkdir .ssh cd .ssh touch authorized_keys nano authorized_keys ``` 在authorized_keys文件中添加公钥。 8. 克隆仓库:使用以下命令将远程仓库克隆到本地: ``` git clone git@ip:/home/git/repo.git ``` 其中,ip为远程服务器的IP地址;repo.git仓库文件夹。 至此,我们已经成功地在Linux系统中搭建了一个Git远程仓库。我们可以让团队成员通过SSH协议访问该仓库,并进行代码的管理和共享。 ### 回答3: Git是一个流行的版本控制系统,可以通过Linux操作系统搭建Git远程仓库。以下是搭建Git远程仓库的步骤,这将有助于您在Linux上设置仓库。 1.安装Git软件包:首先,安装Git软件包。Git是一个自由软件,可以从Git网站上免费下载。您可以使用以下命令安装Git: sudo apt-get install git 如果您使用的是不同的Linux发行版,请选择相应的命令来执行安装。 2.创建Git用户:创建一个专用的Git用户,充当版本控制仓库的管理员。此操作可增强安全性。 sudo adduser git 创建用户时,设置密码和其他信息。 3.创建Git仓库:选择要在Linux服务器上设置的Git仓库目录,并创建目录。然后为用户Git设置目录权限。 sudo mkdir /opt/git sudo chown git:git /opt/git 创建完成后,使用以下命令进入目录: cd /opt/git 您可以使用以下命令初始化仓库,并将它设置为共享资源: sudo git init --bare --shared=my-group my-project.git 其中 my-group 是组名,my-project.git创建仓库。同时,Git要求您对各个项目分配名称。 4.设置远程访问:您应该设置一个访问Git仓库的方式。为此,请在虚拟主机上打开SSH,并创建仓库访问的公钥和私钥。 您可以使用以下命令生成SSH密钥: sudo su - git ssh-keygen -t rsa 将公钥添加到Git仓库: sudo cat /home/git/.ssh/id_rsa.pub >> /opt/git/my-project.git/.ssh/authorized_keys 5.下载代码仓库:现在,您可以将代码版本控制仓库Linux服务器下载到客户端。为此,您需要标识仓库位置、仓库名称以及提供SSH密钥。 git clone git@<ServerIpAddressOrHostname>:<RepositoryDirectory>/<RepositoryName>.git 最后,您可以使用以下命令离开Git用户: # exit 总之,以上是在Linux服务器上设置Git远程仓库的步骤。通过这些步骤,您可以更好地管理和维护仓库,从而更加有效地管理代码。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值