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?

Dave
sumber
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.

Alexander Gladysh
sumber
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.

Pencuri
sumber
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.

ozkary
sumber
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.

flahsy
sumber
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
9

Dalam kasus saya, saya menerima pesan ini karena cabang ditandai sebagai 'Dilindungi' di GitLab.

Dave de Jong
sumber
1
Lihat stackoverflow.com/a/28832644/2914140 atau proyek GitLab> Pengaturan> Repositori, lalu Protected Branchesuntuk menemukannya.
CoolMind
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.

Terima kasih
sumber
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)

serup
sumber
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.

shapiro yaacov
sumber
Saya tidak bisa mendorong ke cabang baru juga
zabop
3

Bitbucket : Periksa izin Cabang di Pengaturan (mungkin di 'Tolak semua'). Jika itu tidak berhasil, cukup tirukan cabang Anda ke cabang lokal baru , dorong perubahan ke remote (cabang remote baru akan dibuat), dan buat PR.

diman82
sumber
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)
medmek
sumber
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)

Sandra Pavan
sumber
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.

Sergej Popov
sumber
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.

eTechman
sumber
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.

Aditya Deshmane
sumber
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.

Agnel Amodia
sumber
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.

Pergi ke
sumber
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.

Dugini Vijay
sumber
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

CoolMind
sumber
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% /
frmdstryr
sumber
0

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

shdr
sumber
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 ...

Jeffrey Ng
sumber
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!

Manuel Alanis
sumber
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
Duc Filan
sumber
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

Jas
sumber
-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"
  }
}
DeCoder
sumber