问题1:创建repo干啥?
工作和备份。
工作得有工作区是不,下面几种创建方式:
独自创建:
git init 创建含有工作区和版本库的repo
git init --bare 只含版本库
依靠其它repo clone:
git clone ...
下面继续
问题2:创建那么多repo干啥?
一个工作,一个备份。以上至少。
注意备份的repo最好是裸版本库,为啥?
比如B是用来备份的,当B非bare时,A push到B时,你让A的工作区和暂存区咋办,人家B是有自己的工作区的(记住你只是想备份,记住你要备份的只是objects)
1. 目的:为了做一个备份,所以需要一个其它的版本库。
也就是git clone,然后通过git push 与 git pull实现两个版本库的同步。
2. 存在版本库A(非bare),现在通过git clone克隆另一个版本库B,需注意的是不能从A执行git push B_addr而 必须是从B git pull实现B与A的一致,且pull后无需加A_addr,因为他已经对源版本库A执行了注册 (在.git/config 中可以看见,或是git config --list)。(不推荐)
方法:执行git clone --bare A_addr 进行克隆得到B
这样就可以通过push 进行推送
首先git init --bare穿件裸版本库B
然后从A执行git push B_addr master执行推送,注意需加上master,因为B中并没有对A进行注册,并且B中也不存在master分支(如果有的话省略master)。
5. 备注:
在执行git commit -m ""时在没有改变的情况下是不允许提交的,若想提交则执行:git commit --allow- empty -m ""
对于以设置的配置,有的可能是通过git config --global key value设置的。可通过git config --unset --global key进行unset.
OK