打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Git本地远程仓库的搭建(局域网内也可提交)

你是否也这样想过?可以在自己的两台或者多台电脑中创建一个仓库,其他电脑的文件或者代码都可以push到这台机器中的git仓库进行版本管理,相当于有一个自己的git远程仓库。

 具体的功能可以这样理解:

  • 1.功能需求

  • 1)创建根仓库(总得仓库,比如本机D盘)里文件可见。

  • 2)本地仓库(C盘仓库)可关联根仓库(D盘仓库)并提交。

  • 3)局域网其他机器可访问根仓库并可向根仓库提交。


  • 2.准备环境

  • 1)两台机器都安装了git。

  • 2)两台机器可以ping通。


  • 3.功能实现

  • 1) 根仓库的搭建

  •  找好要存放的根仓库目录,比如容量比较大的硬盘D,移动硬盘也可以(相当于一个移动仓库,我没有试过,原理上可行)。
     在要做为仓库的目录(如D:\AllGitRepository)下执行以下命令创建仓库:

D:\AllGitRepository>git initInitialized empty Git repository in D:/AllGitRepository/.git/
  •      这样,本地的根仓库就搭建好了。

  •    //不创建裸仓库,因为看不到文件。

  • 2).本地仓库(C盘仓库)可关联根仓库(D盘仓库)并提交
    重点来了。


    先在C盘创建一个测试目录gitTest,执行以下命令。

::创建文件。C:\Users\gitTest>type null > a.txtC:\Users\gitTest>dir C:\Users\gitTest 的目录2018/07/09  14:45    <DIR>          .2018/07/09  14:45    <DIR>          ..2018/07/09  14:45    <DIR>          a.txt::创建本地仓库。C:\Users\gitTest>git initInitialized empty Git repository in C:/Users/gitTest/.git/C:\Users\gitTest>git add .::提交到本地仓库。C:\Users\gitTest>git commit -m "test"[master (root-commit) 41bf91e] test 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 a.txt::关联根仓库(D盘根仓库)C:\Users\gitTest>git remote add rootRep D:\AllGitRepository\

    在根仓库(D盘目录)下执行以下命令:

D:\AllGitRepository>git config --global receive.denyCurrentBranch ignore

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

unset GIT_DIRcd ..git checkout -f

将该文件后缀删除,变为post-update,post-update文件内容如下:

    之后就可以在C盘的仓库中做提交了:

C:\Users\gitTest>git push -u rootRep masterCounting objects: 5, done.Delta compression using up to 4 threads.Compressing objects: 100% (4/4), done.Writing objects: 100% (5/5), 610 bytes | 0 bytes/s, done.Total 5 (delta 0), reused 0 (delta 0)To D:\AllGitRepository   41bf91e..03de5cf  master -> masterBranch master set up to track remote branch master from rootRep.

   远程仓库和本地仓库就关联好了。之间可以push和pull。

前边只是示例,真实环境下我们已经有了本地的仓库,里边还有不少的代码,比如我有以下一个工程:


我不会可能将文件都push到根仓库的根路径下,因为根仓库不只会有这一个文件,我们可以在跟仓库下创建一个管理该项目的文件夹并创建仓库,该仓库作为本地仓库的远程仓库,然后像上边一样配置仓库(修改post-update文件)就可以push了。在根仓库中对所有的仓库进行统一管理。
  • 3).局域网其他机器访问根仓库并向根仓库提交。

  • 其他机器访问根仓库,只需要将根仓库文件夹共享就可以(添加密码验证)。

  • 将根仓库共享。

  • a.右键根仓库目录—>属性—>共享—>高级共享—->勾选共享此文件夹—->权限如下:

  • b.在另一台机器上右键计算机—>映射网络驱动器:

  • 输入根仓库地址比如:


    //如果需要输入密码,输入另一台电脑的登录密码。

  • 远程提交:

  • 上述步骤将根仓库的地址映射为了X:\所以我们只需要将远程仓库关联到X:\目录下就可以了。其他步骤和本地一样。

这样实现了开头所要的功能。


谢谢阅读。


参考资料:
1) https://blog.csdn.net/lusyoe/article/details/52876728
2) https://www.cnblogs.com/tianyalu/p/5153256.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
02-Git远程仓库Github
git 创建远程仓库
如何将VUE项目发布到GitHub上
工具 | 手把手教你在VSCode中使用Git
Git 删除远程仓库文件
[软技能] 第70天 本地git与远程仓库连接的方式有哪些?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服