Saya memiliki proyek yang sudah ada, digunakan untuk heroku dan di bawah kendali git. Saya secara teratur menambahkan dan melakukan kode.
Saya baru-baru ini membangun kembali komputer yang sedang saya kerjakan (OSX, 10.6) dan sekarang ketika saya memohon
git status
Saya melihat perubahan saya, tetapi ketika saya mencoba menambahkan file yang diubah untuk melakukan, saya mengerti
Dans-iMac-335:[app-name-obscured] apple$ git add public/javascripts/*
fatal: Unable to write new index file
Saya telah mengkloning proyek dari repositori heroku git, dan saya dapat menambahkan di sana. Kepemilikan file dalam dua proyek adalah sama. Apa yang menyebabkan ini? Opsi saya adalah menambahkan masing-masing file yang diubah ke versi yang baru dikloning dan merekonstruksi dengan cara itu, tetapi ada banyak perubahan, dan sepertinya ada perbaikan di sini.
Adakah yang mengalami ini, dan ada ide untuk memulai?
Chris: terima kasih atas jawaban lengkapnya.
Saya bisa menjalankan git menggunakan sudo. Tampaknya dalam pengertian itu menjadi masalah izin, meskipun direktori tersebut adalah 755, dan dimiliki oleh saya, dan file terlampir 644, lagi-lagi dimiliki oleh saya (pengguna yang sama seperti yang memiliki file proyek). Ada banyak ruang disk, dan saran bahwa direktori dapat ditulisi adalah yang baik, tetapi saya menjalankan git dari dalam direktori yang berisi proyek - apakah masih perlu membuat path lalu?
Saya tidak menemukan ktrace di sistem saya, dan saya bukan ahli manipulasi terminal, tetapi saya mencoba menjalankan dtruss. Itu tidak menunjukkan masalah, tetapi saya sadar bahwa karena saya harus menggunakan sudo untuk menjalankan dtruss, itu berarti bahwa proses pemantauan dtruss juga berjalan sebagai superuser. Bagaimanapun, pada saat itu ia dapat menambahkan item ke git, dan juga menggunakan sudo saya bisa mengkomitnya sekarang. Masalahnya adalah ketika menambahkan item baru, bukan yang dimodifikasi. Jika saya melakukan sesuatu seperti
sudo dtruss su <my_username> git add some/file/name/*
Apakah saya dapat menjalankan git sebagai nama biasa saya? Saya memikirkan hal ini setelah saya meretas cara saya untuk mendapatkan hasil yang diinginkan.
Saya bisa hidup dengan menggunakan sudo untuk operasi di mana item ditambahkan dan dikomit untuk saat ini. Yang ingin saya lakukan adalah mendapatkan repo heroku saya sesuai dengan pekerjaan saat ini: maka saya pikir saya bisa mengkloning itu, dan melihat apakah masalahnya hilang. Kalau tidak, aku akan kembali ...
ktrace
disediakan pada sistem yang lebih lama, tetapi saya tidak memiliki sistem 10.5 atau 10.6 untuk mengetahui opsi yang Anda perlukan untuk mendapatkan informasi dari dtrace . Berjalan sebagai root akan menyembunyikan berbagai macam masalah izin (pemeriksaan izin sering kali sepenuhnya dilewati untuk proses yang berjalan sebagai root). Anda mengatakan "direktori adalah 755"; apakah Anda berbicara tentang .git
direktori atau tingkat atas pohon kerja (direktori yang berisi .git
direktori)? Apakah Anda memeriksa bendera dengan ls -lo .git/index
?
o
untuk O
(huruf besar oh) dalam 10,5 dan yang lebih baru. Jadi periksa dengan ls -lO .git/index
.
.git
direktori di root proyek Anda?