寂书万卷 2018-07-09 16:02:06   13357   收藏 23
展开
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/
1
2
     这样,本地的根仓库就搭建好了。
   //不创建裸仓库,因为看不到文件。
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\
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    在根仓库(D盘目录)下执行以下命令:

D:\AllGitRepository>git config --global receive.denyCurrentBranch ignore
1
    修改根仓库.git/hooks/post-update.sample文件,在最下边添加以下代码:

unset GIT_DIR
cd ..
git checkout -f
1
2
3
将该文件后缀删除,变为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.
1
2
3
4
5
6
7
8
9


   远程仓库和本地仓库就关联好了。之间可以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


点赞
4

评论
5

分享

收藏
23

手机看

打赏
文章举报
收起全文

反转!BAT编程吸金榜来了,AI程序员刷爆了......
阅读数2661

2020年BAT等大厂积极布局AI领域,程序员转行学AI的门槛是什么?怎么转?
学院
来自:CSDN

 

 
码工ccc201911:有点看不明白.但是按顺序照做就可以.不按顺序有问题. 谢谢作者1秒前


囝岩:unset GIT_DIR cd .. git checkout -f 问下这几句代码在post-update.sample并删除后缀的具体作用是什么..7月前

1

囝岩:直接创建git init --bare 然后就可以本机直接clone了,另一台电脑远程只要共享文件夹,同一个局域网 好像也行啊? 不用改命令4月前


vbandplc:不过命令那块 我是完全没去碰它。看到都会头皮发麻!我装了一个Git Extensions。方便window下的GUI操作。5月前


vbandplc:看了非常多。感觉算是全网最好的了。有图文。并且是适合小公司,替换SVN的方案。又不用装什么复杂的管理工具。虽然只是局域网内使用。SSH那些是服务器才需要考虑的事情。 你这篇文章是最好表述了。GIT分布式版本控制器,服务端(初始化为中央仓库)其实和客户端(初始化为本地仓库)是一样的。而不用那些HTTPS SSH。有共享即可同步!5月前


evole:写的可以1年前
————————————————
版权声明:本文为CSDN博主「寂书万卷」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/github_36878269/article/details/80967388

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐