局域网内A主机上新建Git仓库
mkdir test-git
cd test-git
git init // 可以修改源码的仓库,我用了这个
git --bare init // 裸仓库
局域网内B主机 ssh克隆
git clone zhangsan@172.25.179.75:test-git // test-git就在A主机的zhangsan用户目录下
B主机提交代码时,出了问题
error: refusing to update checked out branch: refs/heads/master
根源是我用git init 初始化了仓库
// 但我不想改成裸仓库
git仓库默认拒绝了push操作,需要进行设置,
修改.git/config文件后面添加如下代码:
[receive]
denyCurrentBranch = ignore
A主机的git仓库处于当前分支时,是看不到新的推送变动,但可以看到有修改状态
使用命令 git reset --hard 才能看到push后的内容
所以建议B主机只推开发分支,让A主机来合并到master分支.
最终目的
局域网内A主机已有git仓库(它也是克隆别人的)
A主机新建了开发分支
局域网内B主机 ssh克隆这个仓库
玩法如上!!!
很有用的玩法
-
局域网内不同主机上跑不同分支,局域网A主机作为仓库,集中管理这些分支,最终的修改由局域网仓库推入远程主仓库.
-
局域网内多个平等的分支互认大家都是局域网仓库,相互之间都是不推送,只拉取.