2012-02-10 102 views
2

在这里,在下面的代码我需要克隆GIT中承诺一个克隆reporsitory

一些信息存在其中由命令

   mkdir git_repo 
       cd git_repo 
       git init --bare //creates empty repo 

创建然后,用户将克隆git_repo主回购

   git clone git_repo user_repo 

同样,用户将克隆新创建备份

   git clone user_repo user_bk 
      cd user_bk 
      //user will edit an existing file and commit it 
      git push origin master 
      Counting objects: 5, done. 
      Delta compression using up to 8 threads. 
      Compressing objects: 100% (2/2), done. 
      Writing objects: 100% (3/3), 294 bytes, done. 
      Total 3 (delta 0), reused 0 (delta 0) 
      Unpacking objects: 100% (3/3), done. 
      remote: error: refusing to update checked out branch: refs/heads/master 
      remote: error: By default, updating the current branch in a non-bare repository 
      remote: error: is denied, because it will make the index and work tree inconsistent 
      remote: error: with what you pushed, and will require 'git reset --hard' to match 
      remote: error: the work tree to HEAD. 
      remote: error: 
      remote: error: You can set 'receive.denyCurrentBranch' configuration variable to 
      remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into 
      remote: error: its current branch; however, this is not recommended unless you 
      remote: error: arranged to update its work tree to match what you pushed in some 
      remote: error: other way. 
      remote: error: 
      remote: error: To squelch this message and still keep the default behaviour, set 
      remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'. 
      To user_repo 
      ! [remote rejected] master -> master (branch is currently checked out) 
      error: failed to push some refs to 'user_bk'newtest by user 

我的问题是,

1.In混帐我们可以签入到克隆reporsitory

2.如果这必须是donw那么它是如何做

3.How解决上述错误条件

回答

1

您不应推送到非裸存储库。创建备份存储库时,只需使用git clone --bare即可。

+0

你可以通过示例告诉我 – Rajeev 2012-02-10 13:00:37

+0

只需在命令中加上'--bare' ...'git clone --bare user_repo user_bk' – ThiefMaster 2012-02-10 13:05:23

2

转到user_repo然后:

git config --local --add receive.denyCurrentBranch ignore 

然后你就可以做你尝试过什么。 但是,这并不建议您打印输出。为什么要在备份中提交内容?使用git clone --bare来创建备份。

+0

可以让我知道--bare开关的例子 – Rajeev 2012-02-10 13:01:16

0

1.我们可以推送到克隆库。为此,适当地在.git目录中配置.config文件。
3.您收到的错误说“分支目前被检出”。在这里,您正在推送到在远程端检出的主分支上的远程存储库。结帐差异。在远程端使用git checkout branchname分支,然后再次推送。