Git 局域网版本管理
https://blog.csdn.net/github_36878269/article/details/80967388
远程访问子目录:总的根仓库下通常包含多个项目的版本库,因此在关联远程库时会涉及到子目录的访问,方式应为”D:\RootRep\\subRep“.
局域网中另一台电脑配置及提交:
1、映射网络驱动器
直接将远程管理仓库映射为根目录,上例中subRep映射为"P:"。
2、将本地仓库关联到远程仓库
git remote add oriRep P:
3、正常添加、提交本地文件到本地仓库
依次git add .以及git commit
4、提到到远程仓库。这一部分问题较多。截图记录
4.1、第一次尝试提交:git pull oriRep master。被拒绝,因为远程仓库中已经有文件,而本地仓库中文件与其不同,应先pull到本地之后再进行提交。
4.2、pull远程仓库内容到本地:git pull oriRep master。失败,refusing to merge unrelated histories,原因是远程仓库和本地仓库的commit没有相同项,git认为是写到错误的版本库, 因此拒绝提交。如果开发者确定是这个仓库,就可以使用 --allow-unrelated-histories
来允许。(同理在Push过程中也可以添加此后缀)
4.3、允许后重新尝试push,结果发现仍然被拒绝。提示pull之后再解决。(网络查找原因解释是远程和本地版本之间存在冲突,但是仍然按照提示重新pull一遍到本地)
4.4、再次pull远程代码,然而在此过程中给出了新的提示,存在未合并的冲突。
4.5、查看并解决冲突。
4.6、冲突解决后,再次提交本地仓库(add and commit)。并再次尝试push到远程仓库,结果仍然失败: refusing to update checked out branch: refs/heads/master
查找原因,由于git默认拒绝了push操作,可能是因为远程仓库在创建时使用了init而导致,最好使用git --bare init(http://blog.haohtml.com/archives/12265)。该问题的解决方案为在.git/config文件后面添加如下代码:
[receive]
denyCurrentBranch = ignore
4.7、再次Push,结果出现写文件被拒绝的错误,Permission denied。网络查找关键字,发现可能出现write、create等,其原因应该一致,由于存在多个运行的git bash,导致权限混乱。因此关掉其它未工作的git bash窗口即可。
4.8、第四次push,终于成功。
问题较多,Git学习不系统导致,然而最快的方式仍然是边用边学边总结。