git push gagal dengan remote: error: hook menolak untuk memperbarui referensi / kepala / master


9

Saya baru-baru ini mencoba untuk memulai proyek saya sendiri di komunitas git repo, dan saya telah mengalami beberapa komplikasi. Saya baru mengenal git, tapi inilah yang saya coba lakukan untuk mengujinya.

Saya menjalankan perintah berikut dan semuanya berjalan ok.

git config --global user.name "MYNAME"
git config --global user.email "MYEMAIL"
mkdir testproject
cd testproject
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@git.xxxxx.org:community/testproject.git

dan semua perintah di atas berjalan tanpa kesalahan. Namun, ketika saya menjalankan perintah selanjutnya saya mendapatkan kesalahan besar.

git push -u origin master

dan kesalahannya adalah.

Counting objects: 3, done.
Writing objects: 100% (3/3), 204 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
Username for 'http://git.xxxxxx.org': MYEMAIL
Password for 'http://MYEMAIL.com@git.xxxxxx.org': 
remote: /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.1.0 in any of the sources (Bundler::GemNotFound)
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:159:in `specs_for'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:148:in `requested_specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/environment.rb:18:in `requested_specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:13:in `setup'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
remote:         from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
remote:         from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
remote: error: hook declined to update refs/heads/master
To http://git.xxxxxx.org/community/testproject.git
 ! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'http://git.xxxxxx.org/community/testprojact.git'

Saya tidak begitu yakin apa yang harus saya lakukan dari sini, tetapi bantuan apa pun sangat kami hargai.

Juga, saya menjalankan Arch jika itu penting.

Sunting: Saya sudah mencoba menginstal ulang rake dan tidak berhasil. Versi rake saya saat ini adalah 10.1.1, jadi saya mencoba menghapusnya dan menggantinya dengan versi 10.1.0 dan itu juga tidak memperbaikinya.

Namun ketika saya menginstal rake, saya mendapat kesalahan:

WARNING:  You don't have /home/josh/.gem/ruby/2.0.0/bin in your PATH,
          gem executables will not run.

Mungkinkah ini berkontribusi pada masalah?

Jawaban:


9

Bahwa remote menolak menerima data hanyalah efek samping dari masalah sebenarnya - git berpikir bahwa itu ditolak karena salah satu kait pada ujung remote gagal dengan status keluar> 0 (Anda dapat melihat apa yang ada di dalam Ruby traceback). Tampaknya salah satu pengait mencoba untuk digunakan rake, dan tidak dapat menemukannya. Ini bukan masalah dengan repo spesifik Anda, mungkin. Pesan itu juga bukan dari komputer lokal Anda - perhatikan bahwa ia diawali dengan "remote", itu adalah remote yang hilang rake, jadi mungkin hanya sysadmin di sisi itu yang dapat memperbaiki masalah tersebut.

Saya sarankan Anda menghubungi siapa pun yang mengelola repositori git komunitas Anda.


Itulah yang saya pikirkan. Tidak ada kait di repo git saya yang aktif, dan sejauh ini tidak ada yang saya lakukan bahkan mengubah kesalahan atau membuat yang baru. Saya akan menghubungi pemilik repo dan melihat apakah dia memiliki informasi tentang masalah tersebut.
Joshua Strot

Ternyata masalahnya adalah, saya mencoba untuk mendorong metode HTTP yang tidak didukung pada GitLab mereka. Anda harus mendorong SSH sebagai gantinya, yang bekerja luar biasa. Saya harus mengatakan, saya tidak mengharapkan itu,
Joshua Strot

0

Saya percaya ini adalah masalah Anda.

remote: error: hook declined to update refs/heads/master
To http://git.xxxxxx.org/community/testproject.git
 ! [remote rejected] master -> master (hook declined)

Mencari kesalahan ini Saya menemukan T&J ini di SO, berjudul: error: hook menolak untuk memperbarui referensi / kepala / eksternal_pub sambil mendorong cabang .

Tampaknya ada git hook di server yang menolak push.

kutipan

Kait Sisi Server

Selain kait sisi klien, Anda dapat menggunakan beberapa kait sisi server penting sebagai administrator sistem untuk menegakkan hampir semua jenis kebijakan untuk proyek Anda. Script ini dijalankan sebelum dan sesudah mendorong ke server. Pra kait dapat keluar bukan nol kapan saja untuk menolak dorongan serta mencetak pesan kesalahan kembali ke klien; Anda dapat mengatur kebijakan push yang rumit seperti yang Anda inginkan.

Untuk menentukan mengapa Anda menerima pesan kesalahan ini, Anda harus mencari tahu kail mana yang membuat Anda tersandung. Kait disimpan di hooksfolder di dalam folder git (di ujung server jarak jauh) - temukan pre-receivekait atau updatekait dan periksa untuk melihat apa yang menyebabkan masalah Anda.


Di dalam folder kait saya, saya memiliki beberapa file dengan ekstensi .sample. Saya tidak memiliki kait pra-terima, namun ada kait pembaruan. Karena mereka semua memiliki ekstensi .sample, saya tidak percaya ada di antara mereka yang digunakan, jadi mungkinkah itu pengait pada server yang menolak saya? Saya melihat online dan ada beberapa orang dengan masalah saya yang telah memperbaikinya dengan melakukan berbagai hal, tidak ada yang memperbaikinya dalam kasus saya.
Joshua Strot

0

Periksa peran / grup dan izin dalam repositori GIT Kasus saya, hanya izin merah dan diselesaikan setelah akses baca / tulis yang disediakan oleh tim repositori GIT


0

@Radhakrishnan telah menyarankan, Anda mungkin menghadapi masalah izin.

Jika Anda menggunakan Redmine Git Hosting , periksa izin projet Anda, peran Manajer telah ditetapkan untuk pengguna yang mencoba menulis ulang referensi pelacakan gitnya.

Harap dicatat bahwa saya berasumsi Anda mengetahui dampak git push-force pada pengguna lain yang mungkin berbagi cabang jarak jauh yang sama. Untuk perincian lebih lanjut, lihat artikel ini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.