Tolong bantu saya, saya mencoba menjalankan ini di terminal saya:
asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied
Lalu saya coba yang ini
asgard@asgard-A7N8X2-0:~/CollegePortal$ sudo git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Bantu saya, saya tidak mengerti masalah ini.
sudo
tidak membantu di sini sama sekali karena perlu akses ke Anda kunci ssh (bukan root).Jawaban:
Sepertinya yang pertama tidak berfungsi karena pengguna Anda tidak memiliki izin untuk mengubah direktori itu, dan yang kedua karena pengguna root Anda tidak memiliki kunci SSH yang tepat untuk mengakses repositori git itu.
Bergantung pada apa yang Anda coba lakukan, mungkin lebih baik untuk mengkloning repositori ke direktori yang berbeda, atau mungkin
chown
direktori saat ini untuk memiliki akses penuh untuk pengguna Andasumber
www-data
pengguna saya izin untuk memperbarui.git
direktori. Saya memanggil skrip shell menggunakan php melalui http di browser. Detail di sinisudo su
dan bertindak sebagai root di repo. Sederhanasudo chown -R <username> .
dalam direktori itu berfungsi ajaib!Periksa apakah Anda memiliki cukup izin pada
.git/
direktori. Anda harus memiliki izin menulis. Anda dapat mengaturnya dengan perintah berikut.Buka folder proyek Anda:
sumber
chown: youruser: Invalid argument
chown -R youruser .git/
chown
.git/
dan folder induknya agar berfungsichown
tidak berfungsi maka jalankan perintah inisudo chmod 0777 -R .git/
Jika Anda ingin memberikan izin kepada grup,
bekerja paling baik untuk saya.
Untuk MacOS
sumber
Ini adalah masalah izin UNIX. Jangan gunakan
sudo
untuk kloning repositori. Anda tidak memiliki kunci ssh yang sama dengan root dan Anda tidak seharusnya bekerja sebagai root. Cobalahls -la
untuk menemukan izin pada file dan gunakanchmod
(atausudo chown
) untuk memperbaikinya. Semoga itu bisa membantu.sumber
sudo clone
untuk menerima perjanjian lisensi baru XCode. Jawabannya adalah menerima perjanjian, lalu mengkloning tanpa sudo.Dalam kasus saya berfungsi dengan baik setelah itu:
sumber
Jawaban untuk masalah ini memastikan .git / FETCH_HEAD memiliki hak istimewa menulis dan Anda akan siap.
Saya memiliki masalah ini pada Windows dan diselesaikan dengan memberikan izin menulis.
Dalam unix, seseorang dapat menjalankan
chmod a+rw .git/FETCH_HEAD
dari repositori proyek setelah itu ia harus bekerja.sumber
.git/FETCH_HEAD
sendirian jika masalah izin aktif.git
.Coba seperti ini,
Langkah 1: Periksa dulu siapa Anda? itu akan mengembalikan nama pengguna saat ini misalnya ubuntu
Langkah 2: Kemudian tetapkan izin untuk pengguna Anda saat ini, dalam hal ini, ubuntu oleh
sumber
Dalam kasus saya, saya hanya memiliki akses baca ke file .git / FETCH_HEAD. Saya harus melakukan "sudo chmod g + w .git / FETCH_HEAD" agar dapat melakukan permintaan tarik.
sumber
.git/FETCH_HEAD
sendirian jika masalah izin aktif.git
.sudo chmod g+w .git/FETCH_HEAD
sudo chmod g+w .git/FETCH_HEAD
, solusi sempurna.Saya mengalami masalah pertama (izin FETCH_HEAD ditolak) di Windows.
Saya memperbaikinya dengan menjalankan Git Bash sebagai administrator (klik kanan, jalankan sebagai administrator).
sumber
Jika Anda belum menambahkan diri ke grup yang memiliki
.git/
, maka Anda harus.Apa yang dilakukan:
.git/
dan menambahkan pengguna Anda ke grup itu..git/
..gitignore
, yang mungkin Anda butuhkanJika Anda baru saja melakukan sesuatu seperti ini (menambahkan diri Anda ke grup yang memiliki
.git/
), maka Anda harus keluar dan kembali sebelum Anda dapat menulis.git/FETCH_HEAD
selamagit pull
.sumber
Tetapkan izin untuk pengguna Anda saat ini dengan menjalankan perintah
$ sudo chown -R <username> .git/
sumber
Cukup buka folder root Anda dan jalankan perintah ini:
sumber
Menjalankan Windows 7, ketika saya mengalami masalah ini, itu karena saya telah menyembunyikan folder .git. Izinnya baik-baik saja, hanya disembunyikan. Menampilkan folder yang menyelesaikannya.
sumber
Ini akan menyelesaikan semua izin dalam folder
sumber
Ini bekerja untuk saya:
Tidak ada lagi izin yang ditolak kesalahan dalam git. 🎉
sumber
Lihatlah pemilik dan grup
.git
direktori dengan (pertama masuk ke direktori induk .git)ll .git
, lihat grup dan pemilik direktori, tambahkan pengguna Anda ke grup pemiliksudo usermod -a -G yourusername groupsofonwner
, kemudian logout => login dan semuanya mulai berfungsi .Jadi di musim panas
buka direktori induk git
temukan pemilik grup dari
.git
direcotrytambahkan pengguna Anda ke grup itu
Logout dan login ke sistem untuk perubahan ini mulai berlaku.
Bersenang senang lah ;)
sumber
Punya masalah ketika folder .git disembunyikan dan semua file di dalamnya juga disembunyikan. Buat saja folder .git disembunyikan tanpa pembaruan file rekursif dan itu akan berfungsi.
sumber
Alasan kesalahan ini bisa jadi banyak tetapi dalam kasus saya saya memperbarui cabang dengan root kemudian ketika saya mencoba untuk memperbaruinya dengan pengguna normal itu memberi saya kesalahan.
cobalah kedua solusi yang harus bekerja untuk Anda
jika tidak berhasil silakan coba solusi berikutnya harap ini akan menyelesaikan masalah Anda
sumber
Saya mendapat pesan ini saat menggunakan ekstensi git untuk windows. Perbaikan saya adalah dengan hanya menutup ekstensi git lalu buka lagi sebagai administrator
sumber
Dalam kasus saya,
perintah ini berfungsi.
sumber
Masalah ini muncul ketika Anda tidak memberikan izin yang cukup ke folder .git. Untuk mengatasi masalah ini-
Masukkan perintah ini-
Semoga ini bisa membantu .. !!
sumber
Saya memiliki kesalahan yang sama persis tetapi dalam kasus saya, masalahnya adalah hasil dari membangun kembali Apache setelah upgrade ke versi PHP. Singkat cerita, saya lupa menginstal modul Apache 'suexec'.
Itu tidak ada hubungannya dengan kelompok atau kepemilikan. Hanya butuh dua hari untuk mencari tahu, seseorang menembakku ...
sumber
Dalam kasus saya, saya memiliki sistem dual-boot (Windows 10 dan Linux) dengan folder proyek pada disk NTFS. Ternyata pada pembaruan lain Windows 10 diaktifkan dengan sendirinya "startup cepat" dalam pengaturannya. Setelah saya hapus centang di Windows - "kesalahan: tidak bisa membuka .git / FETCH_HEAD: Izin ditolak" di Linux hilang.
sumber
Saya mendapatkan ini karena saya memiliki lebih dari 1 akun pengguna di kotak saya. Saya masuk sebagai pengguna A dan berada di direktori untuk pengguna B. Pengguna A tidak memiliki izin untuk barang-barang pengguna B. Begitu saya menyadari bahwa saya tidak berada di tempat yang saya kira berada dalam sistem file, kesalahan ini masuk akal.
sumber
jika Anda menemukan masalah yang sama di windows server, maka Anda perlu menjalankan baris perintah dengan izin yang cukup, seperti izin administrator.
sumber
untuk pengguna MacOS (jika High Sierra atau versi yang lebih tinggi) gunakan ini:
sumber
TL; DR: Dalam sistem Dual Boot, matikan Fast Startup untuk Windows
Saya mengalami masalah ini di sistem dual boot Ubuntu / Windows. Saya tidak bisa menulis apa pun di salah satu partisi yang dibagikan dengan Windows (partisi NTFS).
Saya baru-baru ini menginstal ulang keduanya dan lupa mematikan "Fast Startup" di Windows. Semuanya kembali normal setelah saya reboot di windows dan mematikan fitur itu dan restart lagi.
sumber
Dalam kasus saya bekerja itu: Saya baru saja menulis
sudo
sebelum perintah:sumber