SORU
24 Ocak 2012, Salı


git push başarısız: `güncelleme reddederek şube teslim: hakem kafaları/master`/

Benim yerel değişiklikler git config JBoss için saklamak istiyorum. Bunun için aşağıdaki yapıyı hazırladım:

lrwxrwxrwx  1 jboss jboss        19 Jan 24 11:53 current -> jboss-as-7.1.0.CR1b
drwxr-xr-x 11 jboss jboss      4096 Jan 24 12:13 jboss-as-7.1.0.CR1b
-rw-r--r--  1 jboss jboss 108211143 Jan 23 16:02 jboss-as-7.1.0.CR1b.tar.gz
drwxr-xr-x  6 jboss jboss      4096 Jan 24 11:36 local

local olacak git depo"". köken Fikri bir güncelleme kullanılabilir olduğunda kolayca JBoss dağılımını güncellemek için muktedir istiyorum. Git içinde dağıtılmış JBoss paketi için tüm yerel değişiklikleri saklamak istiyorum.

Yani, şu anda bunu yapıyorum:

jboss@tpl0:~/jboss-as-7.1.0.CR1b$ git init
Initialized empty Git repository in /opt/jboss/jboss-as-7.1.0.CR1b/.git/
jboss@tpl0:~/jboss-as-7.1.0.CR1b$ git remote add origin ../local/   
jboss@tpl0:~/jboss-as-7.1.0.CR1b$ git pull origin master 
From ../local
 * branch            master     -> FETCH_HEAD

Şimdiye kadar çok iyi, tüm yerel değişiklikler onları istediğim yer var.

Yerel değişiklikler var ve bush için onları local depoya geri istiyor ancak, bir kez bir hata alıyorum:

jboss@tpl0:~/jboss-as-7.1.0.CR1b$ vim standalone/configuration/standalone.xml   
jboss@tpl0:~/jboss-as-7.1.0.CR1b$ git commit -a -m "renamed database to project2_core,   to distinguish from other projects"
[master 3e54f34] renamed database to project2_core, to distinguish from other projects
Committer: jboss <jboss@tpl0.(none)>
 1 files changed, 1 insertions( ), 1 deletions(-)

jboss@tpl0:~/jboss-as-7.1.0.CR1b$ git push origin master 
Counting objects: 9, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 447 bytes, done.
Total 5 (delta 3), reused 0 (delta 0)
Unpacking objects: 100% (5/5), 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 t
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing int
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 som
remote: error: other way.
remote: error: 
remote: error: To squelch this message and still keep the default behaviour, se
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To ../local/
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '../local/'

Ben bu konuda ne yapabilirim? Herhangi bir yardım büyük beğeni topluyor!

EDİT

Ne yaptım, sorun çözüldü ki:

cd ~/current
git init
vim .gitignore                   # set up a basic .gitignore file
git add .gitignore
git commit -a -m "initial commit"
cd ~/local
git clone ~/current
git branch -m master current     # rename master branch to 'current'
git branch repo
git checkout repo

Şimdi, şube dizinde current ~/local her zaman güncelliğini, ama itin böylece dışarı cheked değil.

CEVAP
24 Ocak 2012, Salı


İterek çıplak repo içindir. Olmayan çıplak repos için onları içine çekmen gerekir.

Eğer bu yine de zorlamak istiyorsanız, bir hata iletisi alırsınız ve set olarak yapabilirsiniz.denyCurrentBranch görmezden. İterek ve çalıştırın olduğunuz repo konumuna SSH:

git config receive.denyCurrentBranch ignore

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Git

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Google

    Google

    18 EYLÜL 2005
  • We've moved!

    We've moved!

    7 Ocak 2008
  • Jared Busch

    Jared Busch

    25 Mayıs 2011