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之类的命令了。