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

Git本地远程仓库的搭建(windows 7专业版)

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

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

总体示意图

1.功能需求
1)创建根仓库(总得仓库,比如本机D盘)里文件可见。
2)本地仓库(C盘仓库)可关联根仓库(D盘仓库)并提交。
3)局域网其他机器可访问根仓库并可向根仓库提交。

2.准备环境
1)两台机器都安装了git。
2)两台机器可以ping通。

3.功能实现
1) 根仓库的搭建
 找好要存放的根仓库目录,比如容量比较大的硬盘D,移动硬盘也可以(相当于一个移动仓库,我没有试过,原理上可行)。
 在要做为仓库的目录(如D:\AllGitRepository)下执行以下命令创建仓库:
D:\AllGitRepository>git init
Initialized empty Git repository in D:/AllGitRepository/.git/
     这样,本地的根仓库就搭建好了。
   //不创建裸仓库,因为看不到文件。

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

这里写图片描述

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

::创建文件。
C:\Users\gitTest>type null > a.txt
C:\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 init
Initialized 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_DIR
cd ..
git checkout -f

将该文件后缀删除,变为post-update,post-update文件内容如下:
这里写图片描述

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

C:\Users\gitTest>git push -u rootRep master
Counting 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 -> master
Branch 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

  • 18
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
在进行代码开发时,通常是先在本地进行代码编写和测试,然后将代码提交到版本控制系统中。如果您的项目同时使用了 Git 仓库和服务器仓库,那么您需要进行以下步骤来将代码同时提交到这两个仓库中: 1. 在本地 Git 仓库中进行提交:使用 Git 命令将本地代码提交Git 仓库中,并将代码推送到远程 Git 服务器上。例如,使用以下命令进行提交和推送: ``` git add . git commit -m "提交信息" git push origin master ``` 其中,`git add .` 命令用于将所有修改过的文件添加到 Git 缓存中,`git commit -m "提交信息"` 命令用于提交代码并添加提交信息,`git push origin master` 命令用于将代码推送到名为 `origin` 的远程 Git 服务器的 `master` 分支上。 2. 在本地服务器仓库中进行提交:将本地代码复制到服务器仓库所在的目录中,并使用服务器上的版本控制系统进行提交。例如,如果您的服务器使用的是 SVN 版本控制系统,可以使用以下命令进行提交: ``` svn add . svn commit -m "提交信息" ``` 其中,`svn add .` 命令用于将所有新增的文件添加到 SVN 版本控制系统中,`svn commit -m "提交信息"` 命令用于提交代码并添加提交信息。 需要注意的是,如果您同时使用了 Git 和服务器仓库,那么需要确保两个仓库中的代码是同步的,否则可能会导致代码冲突或者版本混乱的问题。建议您在提交代码之前,先将服务器上的代码进行更新并检查是否存在冲突或版本不一致的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值