Git本地磁盘作远程仓库

Git本地磁盘作远程仓库

柳性安 1,413 2023-02-20

Git本地磁盘作远程仓库

目的

我有一个移动硬盘D盘,经常作为文件备份使用,但是工作盘是C盘,在C盘创建文件或者修改后,如果要同步到D盘,可以采取手动复制/覆盖到D盘,这样巨麻烦;网上也有一些同步软件,有GUI操作界面,使用起来也还可以;那我为什么不使用同步工具呢?作为一个程序员昂,Git的使用是比较多的,而且Git实现的就是项目文件的同步与备份,那我不如使用Git备份我的文件,既可以很好的完成同步工作,又可以提高Git命令的熟练度,一举两得。

实现

1.功能需求

1)创建根仓库(总的仓库,比如本机D盘)里文件可见。
2)本地仓库,工作区(C盘仓库)可关联根仓库(D盘仓库)并提交。

2.功能实现

根仓库的搭建

找好要存放的根仓库目录,比如U盘,容量比较大的硬盘,外置移动硬盘(我的就是)。

在要做为仓库的目录(如D:\AllGitRepository)下打开命令行窗口Git bash here,然后使用以下命令创建仓库(就是普通仓库的创建命令,后面会做一些特别配置):

D:\AllGitRepository>git init
--- 会显示如下类似信息---
Initialized empty Git repository in D:/AllGitRepository/.git/

这样,本地的根仓库就搭建好了。//不创建裸仓库(即git init --bare创建的),因为看不到文件。

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

重点来了。

::创建文件a.txt
 C:\Users\gitTest 的目录
 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 "test1.0"
[master (root-commit) 41bf91e] test
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt

::关联根仓库(D盘根仓库)
C:\Users\gitTest>git remote add local D:/AllGitRepository

注意,不同操作系统路径分隔符是不一样的,windows下是"/",其它请自行查阅

现在工作区的仓库创建完毕。

根仓库完善

在根仓库(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文件内容如下:
image-gitLocal

至此,就可以在C盘的仓库中做提交了,跟提交到gitee一样的操作。

参考文献:
https://blog.csdn.net/github_36878269/article/details/80967388
其还有更多功能:局域网其他机器访问根仓库并向根仓库提交。