Saya entah bagaimana menghapus seluruh direktori cabang kode saya. Saya mengkloning yang baru. Itu bekerja dengan baik kecuali mendorong.
~/workspace/wtf (mybranch)]$ git push origin mybranch
error: Cannot access URL [my url], return code 22
fatal: git-http-push failed
git pull bekerja, meskipun. Bagaimana saya bisa memperbaikinya?
http.receivepack
.Jawaban:
Saya membuat kesalahan dengan menggunakan https alih-alih ssh untuk salinan baru. Sejak itu saya membuat modifikasi dan melakukan tetapi tidak bisa mendorong karena alasan yang jelas.
Untuk memulihkan, saya dengan mudah mengubah bagian [remote "origin"] di .git / config dari
untuk
Setelah itu, saya bisa mendorong lagi.
sumber
git-http-push failed
, saya melihat op sedang mencoba untuk mengatur hal-hal baik di http atau https, -1.Dorong HTTP lebih cepat dengan hanya git - webDAV tidak diperlukan
Dukungan "smart-http" baru sejak git 1.6.6. Metode baru memungkinkan seluruh paket untuk dikirim sekaligus, dan bukan sebagai file individual.
Anda juga dapat menggunakan gitweb untuk menyediakan URL yang dapat dijelajahi di lokasi yang sama.
Catatan: Karena akses dikontrol oleh apache Anda dapat menambahkan persyaratan Auth (htaccess atau ldap, dll) ke pengaturan untuk setiap repositori.
Jawaban ini mengasumsikan Anda memiliki server jarak jauh dan ingin menambah / memperbaiki dukungan http.
PERTAMA: Periksa log apache, kemungkinan izinnya ditolak / tidak dapat menemukan kesalahan ketika apache mencoba mengeksekusi skrip cgi yang didukung git-http.
Menambahkan Dukungan HTTP ke git
Buat saja file git_support.conf baru, dan sertakan dalam apache (tambahkan sertakan pernyataan di httpd.conf)
Hasilnya adalah kemampuan untuk mendorong / menarik:
Dan Anda dapat menelusuri perubahan itu secara online ..
Sumber: http://repo.or.cz/w/alt-git.git?a=blob_plain;f=gitweb/README
sumber
"SetEnv takes 1-2 arguments, an environment variable name and optional value to pass to CGI."
- mengapa?Untuk mengaktifkan " git push " melalui http, Anda harus mengaktifkan WebDAV di server web. Untuk melakukannya untuk Apache Webserver, cukup edit file konfigurasi:
Kemudian cari baris yang dimulai dengan:
Tambahkan baris berikut setelahnya:
Pastikan Anda memiliki baris berikut juga di httpd.conf tanpa komentar:
Setelah itu kamu siap. Mulai ulang Apache Webserver menggunakan:
Pastikan juga agar semua file repositori git di server dapat ditulis oleh pache: pengguna dan grup apache menggunakan:
Jika tidak, gagal untuk mengatur izin yang benar akan menghasilkan "kesalahan PUT: hasil curl = 22, kode HTTP = 403" saat melakukan "git push".
Sekarang cukup lakukan "git push" dari mesin klien Anda dan semuanya akan bekerja.
sumber
Anda tidak dapat mendorong repositori yang Anda kloning melalui HTTP. Anda perlu memperbarui URL ke salah satu
ssh://
ataugit://
jenis URL.sumber
git remote -v
?Edit bagian berikut dari file .git / config Anda:
untuk
Lalu coba
git push origin master
.Edit detail autentikasi dalam file konfigurasi Anda untuk URL repositori lain sebagaimana diperlukan dan dorong ke cabang yang diperlukan.
sumber
git remote set-url origin ...
berfungsi juga.Saya memiliki masalah yang sama dengan operasi push dengan git-http-backend, konfigurasi otentikasi ldap.
Akhirnya saya menemukan solusinya dan menjelaskannya dalam pertanyaan serverfault ini
Mungkin itu akan membantu seseorang dengan masalah serupa.
sumber
Besar
saya punya kesalahan lain tetapi berhasil!
saya mencoba menjelaskan:
Could not LOCK /path/to/www/gitproject/refs/heads/master due to a failed precondition (e.g. other locks)
user1520409
pekerjaan pertama.TAPI bagaimana menyembunyikan kata sandi dari teks pada pesan push?
sumber
Ini juga dapat terjadi jika Anda memasukkan kata sandi yang salah.
sumber
fatal: Authentication failed
pertama