2012-02-10 103 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分支,然後再次推送。