Kesalahan Git saat mencoba menekan - kait pra-terima ditolak


206

Ketika saya mencoba dan mendorong perubahan yang saya lakukan, saya mendapatkan kesalahan berikut ...

git.exe push -v --progress  "origin" iteration1:iteration1

remote: *********************************************************************
To ssh://git@mycogit/cit_pplus.git
! [remote rejected] iteration1 -> iteration1 (pre-receive hook declined)
error: failed to push some refs to 'ssh://git@mycogit/cit_pplus.git'

Apa yang sedang terjadi?


8
Apa yang ada di mikon pra-terima hookon?
rob mayoff

Anda tidak akan mencoba mendorong file besar ke github bukan?
Adam F

FYI: hari ini semua kolega saya mendapatkan kesalahan ini, akhirnya kami memutuskan untuk memulai ulang server simpanan kami dan diperbaiki secara ajaib. Kami tidak tahu apa masalahnya sebenarnya.
T_D

Jawaban:


125

Anda harus bertanya kepada siapa pun yang memelihara repo di git@mycogit/cit_pplus.git.

Komit Anda ditolak oleh pre-receivehook dari repo itu (itu adalah skrip yang dapat dikonfigurasi pengguna yang dimaksudkan untuk menganalisis komit yang masuk dan memutuskan apakah mereka cukup baik untuk diterima ke dalam repo).

Adalah ide yang baik untuk meminta orang itu memperbarui pengait, sehingga akan mencetak alasan penolakan.

Jika pengelolanya adalah Anda sendiri, maka sepertinya Anda memiliki masalah dengan pengaturan di sisi server. Silakan bagikan informasi lebih lanjut.


7
Dalam kasus saya, BitBucket memiliki validasi dari konten pesan komit, menghadapinya dengan tiket JIRA, yang sedang offline saat itu.
Vítor Neil Avelino

1
jadi ketika online itu diperbaiki?
shareef

5
Dalam kasus saya itu adalah ketidakcocokan dalam nama pengguna dengan mana komit dihasilkan dan nama pengguna di BitBucket. Saya tidak berwenang untuk memperbarui nama pengguna BitBucket, jadi saya harus mengatur ulang komit saya dan melakukannya lagi dengan nama pengguna yang diperbarui. Anda dapat memperbarui nama pengguna git dengan perintah inigit config user.name 'UpdatedUserName'
MM

3
Dalam kasus kami, bitbucket tidak mengizinkan siapa pun untuk mendorong ke cabang ini.
Ramon Fincken

Dalam kasus saya, saya harus menemukan pengaturan repo pada bitbucket dan menonaktifkan committer verifikasi di bawah pengaturan Hooks.
Sizons

78

Saya berani bertaruh bahwa Anda sedang mencoba dorongan yang tidak bisa maju dan kait menghalangi itu. Jika itu masalahnya, jalankan saja git pull --rebasesebelum mendorong untuk mengubah kembali perubahan lokal Anda pada basis kode terbaru.


Ini luar biasa. Sekarang saya bisa lagi mendorong dan menarik, tetapi sebelum itu saya harus mengatur upstream sebagai git branch --set-upstream-to=origin/myBranch. +1 untuk jawaban Anda.
AlokeT

Dalam repositori baru saya mendorong cabang (bukan master), lalu rebased dan mendapat kesalahan saat push. Saya tidak menemukan kait web. Saya dieksekusi git pull --rebase, harus rebase lagi dan mampu mendorong cabang. Akhirnya saya menemukan bahwa cabang saya menjadi terlindungi.
CoolMind

60

Ukuran file itu penting. Ada batas ~ 120MB untuk satu file. Dalam kasus saya, .gitignore menggunakan Visual Studio memiliki daftar file, tetapi file itu masih dilakukan. Saat menggunakan git cli, kita bisa mendapatkan informasi lebih detail tentang kesalahan tersebut.

kait pra-terima ditolak karena file besar. Pada dasarnya memvalidasi push.

Untuk mengatasinya, saya menghapus komit terakhir menggunakan:

git reset --soft HEAD~1

Saya kemudian mengecualikan file dari komit.

Catatan: Gunakan HEAD ~ N untuk kembali ke N jumlah komit sebelumnya. (mis. 3, 4) Selalu gunakan sakelar --soft untuk mempertahankan perubahan di folder

semoga membantu.


Ini membantu karena masalah saya adalah file dump SQL yang tidak diinginkan (ukuran file 155MB) sedang didorong (secara tidak sengaja).
Mehrdad Dastgir

1
Batas ukuran file tergantung pada penyedia hosting Anda. GitHub memiliki batas sekitar ukuran itu, untuk yang lain bervariasi, dan git yang dihosting sendiri secara alami tidak memiliki batasan seperti itu.
1615903

1
apa yang Anda lakukan jika Anda sudah memiliki beberapa komitmen setelah dorongan ditolak? ini adalah kasus saya, saya punya file besar yang tidak diinginkan (627MB) di salah satu komitmen sebelumnya sebelum mencoba untuk mendorong repo
leeCoder

Saya memiliki file CSV yang diunggah secara tidak sengaja. Jadi dalam kasus saya, kesalahan itu karena itu.
tonhozi

Jika Anda memiliki beberapa commit, tambah indeks untuk mereset head kembali ke commit itu. Misalnya, gunakan HEAD ~ 3 untuk kembali ke tiga komit sebelumnya. Selalu gunakan sakelar --soft untuk mempertahankan perubahan di folder.
ozkary

13

Ini mungkin karena Anda tidak memiliki hak akses untuk mendorong komit ke cabang seperti master. Anda dapat meminta pengelola untuk memberi Anda hak untuk mendorong komitmen.


Saya pikir ini benar, tetapi yang menarik adalah VS tampaknya mencoba untuk mendorong ke cabang induk bukan nama cabang yang sebenarnya ke remote. Jadi jika cabang induk dilindungi ini tampaknya terjadi tetapi tampaknya tidak ada cara untuk memperbaikinya dalam VS dan Anda harus beralih ke baris cmd.
Tandai


8

Saya mendapat pesan ini ketika server GitLab mengalami beberapa perubahan. Hari berikutnya mendorong bekerja dengan baik. Bagaimanapun, seperti yang ditunjukkan orang lain, tanyakan kepada pengelola Anda untuk memastikan.


1
Baru saja mengalami masalah ini dan saya kira GitLab membuat perubahan. Berikan 10 menit dan berhasil. Saya tidak mengubah apa pun.
woter324

Baru saja mengalami masalah ini juga. Bagi siapa pun yang mungkin ingin memeriksa apakah ini masalahnya: status.gitlab.com
Renan Ferrari

5

Saya mengalami masalah ini ketika mencoba untuk menggabungkan perubahan dengan ukuran file lebih besar dari yang diperbolehkan repositori jarak jauh (dalam kasus saya itu adalah GitHub)


2
Dalam kasus saya bahkan setelah menghapus file GitHub masih mengeluh ... tapi jawaban ini melakukan trik stackoverflow.com/questions/19573031/...
CodenameDuchess

5

Saya mengalami masalah yang sama ini.
Yang dipecahkan bagi saya adalah beralih ke cabang lain dan kemudian kembali ke yang asli.

Tidak yakin apa penyebab garis bawahnya, tetapi ini memperbaikinya.


Saya tidak bisa mendorong ke cabang baru juga
zabop


2

Dalam hal ini membantu seseorang:

Saya punya repo kosong tanpa cabang master untuk membuka proteksi (di Gitlab) jadi sebelum menjalankan git push -u origin --all

  • Saya harus lari git push -u origin masterdulu,
  • buka proteksi cabang master sementara
  • dorong sisanya ( --all& --tags)

2

Saya menghadapi kesalahan yang sama, setelah memeriksa saya memiliki akses pengembang dan tidak dapat menerbitkan cabang baru. Menambahkan hak akses yang lebih tinggi menyelesaikan masalah ini. (Gitlab)


2

Saya mendapat kesalahan ini dengan inti GitHub. Saya mencoba untuk mendorong komit dengan file di sub-direktori. Ternyata inti hanya dapat memiliki file di direktori root.


Punya ini juga. Ternyata repo memiliki file "snippets\\csharp.json"yang memberikan git pada windows waktu yang sulit.
Carl Walsh

2

Hapus opsi cabang yang dilindungi atau izinkan peran tambahan seperti pengembang atau admin untuk memungkinkan pengguna ini mengalami kesalahan ini untuk melakukan penggabungan dan mendorong.


1

Dalam kasus saya, kami memiliki kait untuk pesan komit, skrip server kami menerima komit jika memiliki format khusus untuk pesan komit "<JIRA ID><Message>". Itu (kait) menolak komit jika masing-masing tiket Jira tidak ada atau ada beberapa simbol khusus dalam pesan komit. Saya menghadapi kesalahan ini ketika saya menambahkan /, [,> dll dalam pesan komit, menghapus itu berfungsi dengan baik.


Jawaban ini tidak mungkin membantu, karena poster asli (dan siapa pun yang mengunjungi di masa depan) akan memiliki skrip yang berbeda yang dikonfigurasi sebagai pengait pra-terima.
aronisstav

1

Ini sebenarnya terjadi ketika YACC diaktifkan di sisi server di BitBucket. YACC memungkinkan nama masalah JIRA disebutkan dalam pesan komit. Jadi, setiap kali Anda melakukan sesuatu minimal simpan nomor JIRA Anda ke dalam pesan komit dan kemudian Anda dapat menambahkan pesan Anda sendiri.


1

Saya menggunakan GitKraken dan kami membuat cabang lokal, lalu kami menggabungkan dua cabang terpencil di dalamnya dan kemudian kami mencoba mendorong cabang lokal ke tempat asalnya. Itu tidak berfungsi dengan pesan kesalahan yang sama.

The solusi adalah untuk menciptakan cabang lokal dan dorong pertama ke asal dan kemudian melakukan penggabungan.


1

Masalah: "PUSH Failed refs / head / - hook pra-terima ditolak"

Saya telah menghadapi masalah tidak dapat mendorong perubahan saya ke cabang asal saya dan apa pun untuk menguasai cabang repositori proyek tertentu karena ukuran repo itu melebihi batas 2GB. Itu melempar kesalahan. Itu karena kami telah mendorong data pengujian tanpa sadar ke bitbucket dari cabang pengujian lainnya.

PUSH Gagal ref / head / - kait pra-terima ditolak

Jadi mencoba memeriksa apakah itu sama dengan repo proyek lain dan mereka tidak memiliki masalah.

Memperbaiki:

Kolega saya memperhatikan bahwa ketika kami mengkloning proyek kembali secara lokal, ukuran proyek adalah 110MB. Jadi kami mulai membersihkan cabang yang kami gabungkan sebelumnya dan cabang aktif yang tidak diperlukan lagi. Setelah pembersihan dilakukan untuk beberapa cabang, kami menyadari bahwa ukuran repo turun drastis dari 2GB menjadi 120MB. Kemudian kami mencoba untuk mendorong perubahan ke cabang saya dan berhasil.


1

Dalam kasus saya, saya memiliki repositori baru, mendorong cabang ('UCA-46', bukan 'master'), mengubahnya kembali, mendorong paksa lagi dan mendapatkan kesalahan. Tidak ada kait web. Saya dieksekusi git pull --rebasesesuai saran @ThiefMaster , harus rebase lagi dan bisa mendorong cabang. Tapi itu cara yang aneh dan sulit.

Lalu saya melihat Git push error pra-terima kait ditolak . Saya menemukan bahwa cabang saya menjadi terlindungi . Saya menghapus perlindungan dan secara paksa bisa mendorong lagi.

masukkan deskripsi gambar di sini


0

Saya mendapatkan ini ketika mencoba untuk mendorong ke contoh dokku. Ternyata disk sudah penuh di server saya.

Ran: du -f

Dan hasilnya adalah:

Filesystem      Size  Used Avail Use% Mounted on
udev            476M     0  476M   0% /dev
tmpfs           100M  4.4M   95M   5% /run
/dev/xvda1      7.8G  7.4G  8.9M 100% /

0

Bagi saya Otorisasi pada server git jarak jauh menyelesaikan masalah. masukkan deskripsi gambar di sini


0

Dalam kasus saya, itu karena saya tidak sengaja menambahkan file raksasa ke push tanpa komitmen saya dan saya tidak bisa menyingkirkannya tidak peduli apa pun yang menarik atau mengatur ulang atau rm yang saya lakukan setelahnya.

solusi kotor saya tetapi solusi yang bisa diterapkan adalah mengubah nama direktori saat ini, mengkloning ulang direktori ke lokal dan mencerminkan perubahan secara manual ke direktori lokal yang sudah dikloning ulang ...

Kedengarannya tidak bagus tapi berhasil ...


1
Saya menghadapi masalah yang sama, dan menggunakan $ git reset --soft HEAD ~ 1 seperti yang disarankan oleh @ozkary.
jarrettyeo

0

Kesalahan bagi saya adalah bahwa proyek tidak memiliki cabang dibuat, dan peran saya adalah pengembang, jadi saya tidak bisa membuat cabang apa pun, meminta mereka memberi saya izin terkait dan semuanya beres sekarang!


0

Cabang default (mis. master) Belum ada untuk remote Anda. Jadi pertama-tama Anda perlu membuat mastercabang di server remote git (mis. Membuat README.mdfile default ) kemudian mencoba pushsemua cabang lokal Anda yang ada menggunakan perintah ini:

git push -u origin --all

0

Bagi saya semuanya berjalan dengan baik sampai Bitbucket secara otomatis mengubah kebijakan mereka hari ini (21 April 2020). Ini terjadi untuk menyelaraskan dengan fitur baru yang baru-baru ini diperkenalkan hari ini yang disebut Workspaces , jadi saya curiga ada hubungannya dengan itu.

Penanganan Masalah : Saya (sebagai Admin) mengikuti instruksi untuk menambahkan alamat email ke Pengguna di UI (email yang Anda gunakan dapat ditemukangit config --list

masukkan deskripsi gambar di sini


-7

Menentukan versi node.js dapat menyelesaikan masalah seperti

{
  "name": "myapp",
  "description": "a really cool app",
  "version": "1.0.0",
  "engines": {
    "node": "10.3.0"
  }
}
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.