Git局域网内仓库搭建

2023-02-20 16:37:26 浏览数 (1)

git仓库是个存放数据的地方,也可以位于局域网内。这样可以满足不联网的电脑在局域网之间进行操作。

这些电脑需要满足两个条件:

1 所有电脑都已经安装git工具(最好是同一个版本)

2 所有电脑可以通过网络进行连接(可以ping通)

创建仓库

找一个存放文件的位置,最好新建一个文件夹,初始化git仓库:

代码语言:javascript复制
git init

仓库配置文件修改

修改路径

进入仓库文件夹路径下

代码语言:javascript复制
git config--global receive.denyCurrentBranch ignore
这句话什么作用呢,这句话只要是解决 非裸仓库 作为 仓库 的问题

这句话什么作用呢,这句话只要是解决 非裸仓库 作为 仓库 的问题

什么叫裸仓库呢,就是使用如下命令git init --bare 建立的仓库。

裸仓库一般是无法直接看到源码的,所以也就不符合需求了。

详细说一下使用 --bare 参数的含义,使用 --bare 参数初始化的仓库,我们一般称之为裸仓库, 因为这样创建的仓库并不包含 工作区 , 也就是说,我们并不能在这个目录下执行我们一般使用的 Git 命令。

那裸仓库有什么用呢。从裸仓库 clone 下来的本地仓库可以进行正常的push操作, 但是从一般仓库 clone 下来的本地仓库却不行。 这也正是裸仓库存在的意义。 裸仓库一般情况下是作为远端的中心仓库而存在的。使用git init --bare <repo>可以创建一个裸仓库,并且这个仓库是可以被正常clone和push更新的, 裸仓库不包含工作区,所以并不会存在在裸仓库上直接提交变更的情况。

修改文件

一般仓库如果要push需要修改文件。

修改根仓库.git/hooks/post-update.sample文件,在最下边添加以下代码:

代码语言:javascript复制
  unset GIT_DIR
  cd ..
  git checkout -f将该文件后缀删除,变为post-update,post-update文件内容如下:
#!/bin/sh## An example hook script to prepare a packed repository for use over# dumb transports.## To enable this hook, rename this file to "post-update".
#exec git update-server-info
unset GIT_DIR
cd ..
git checkout -f

向跟仓库提交文件

本地仓库提交

本地的仓库直接关联增加路径即可

代码语言:javascript复制
git remote add renameXXX D:xxx
renameXXX是远端仓库的命名  D:xxx是远端仓库路径(也在本电脑上)

然后就可以使用push pull之类的命令了

局域网内其他电脑提交

1 首先将跟仓库(远端仓库)文件夹共享

右键根仓库目录—>属性—>共享—>高级共享—->勾选共享此文件夹

2 局域网内其他电脑进行网络映射

右键计算机—>映射网络驱动器

映射之后使用映射路径进行关联就可以

代码语言:javascript复制
git remote add renameXXX X:
renameXXX是远端仓库的命名  X:是远端仓库路径(映射的路径)

然后就可以使用push pull之类的命令了。

0 人点赞