Saya belajar git dan saya perhatikan bahwa ia memiliki proses komit dua langkah:
git add <files>
git commit
Langkah pertama menempatkan revisi ke dalam apa yang disebut "area pementasan" atau "indeks".
Apa yang saya tertarik adalah mengapa keputusan desain ini dibuat, dan apa manfaatnya?
Juga, sebagai pengguna git apakah Anda melakukan ini atau hanya menggunakan git commit -a
?
Saya menanyakan ini karena saya berasal dari bzr (Bazaar) yang tidak memiliki fitur ini.
version-control
git
workflows
thomasrutter
sumber
sumber
git add -p
, Anda dapat memilih untuk melakukan satu bagian file sementara tidak melakukan bagian lain dari file yang sama .git status
dan mungkingit push
. Untuk semua hype tentang git, (dan kode berbagi GitHub luar biasa) bagian-bagiannya sangat menggangguJawaban:
Pisahkan pekerjaan menjadi komit terpisah. Anda mungkin berkali-kali membuka file untuk menulis perbaikan satu baris, tetapi pada saat yang sama Anda melihat bahwa pemformatan itu salah, beberapa dokumentasi dapat diperbaiki, atau beberapa perbaikan yang tidak terkait lainnya. Dengan RCS lain Anda harus menuliskannya atau memasukkannya ke memori, menyelesaikan perbaikan yang Anda datangi, melakukan itu, dan kemudian kembali untuk memperbaiki hal-hal lain (atau membuat bola-of-lumpur melakukan dengan hal-hal yang tidak terkait) . Dengan Git Anda hanya memperbaiki semuanya sekaligus, dan stage + komit satu baris secara terpisah, dengan
git add -i
ataugit-gui
.Jangan merusak bangunan. Anda sedang mengerjakan modifikasi yang rumit. Jadi Anda mencoba hal-hal yang berbeda, beberapa di antaranya bekerja lebih baik daripada yang lain, beberapa yang merusak hal-hal. Dengan Git Anda akan melakukan hal-hal ketika modifikasi membuat segalanya lebih baik, dan
checkout
(atau men-tweak lebih banyak) ketika modifikasi tidak bekerja. Anda tidak akan harus bergantung pada fungsionalitas pembatalan editor, Anda dapatcheckout
seluruh repo bukan hanya file-per-file, dan kesalahan tingkat file apa saja (seperti menghapus file yang belum berkomitmen atau menyimpan + menutup setelah modifikasi buruk) tidak menyebabkan banyak pekerjaan hilang.sumber
git add -i
komit dengan satu tahap? Anda hanya akan memilih banyak file (atau baris dalam file) yang terkait dengan fitur tunggal, dan melakukan komit. Kemudian Anda akan kembali dan melakukan komit kedua yang terkait dengan fitur lain ..git-branch
jenis mode ( jovicailic.org/2017/04/vim-persistent-undo ). Selanjutnya riwayat undo Anda secara otomatis dilacak setiap kali Anda masuk ke mode normal. Jadi itu mengurangi beban mental Anda karena harus membuat "manual membatalkan poin". Mengapa menggunakan editor Anda "membatalkan" buffer tidak metodis?Salah satu manfaatnya bagi saya adalah kemampuan untuk "menambahkan" file secara progresif. Sebelum melakukan saya meninjau setiap file. Setelah file ditinjau, saya menambahkannya. Ketika saya
git status
ataugit diff
, git hanya menunjukkan kepada saya file-file yang telah dimodifikasi dan belum ditambahkan. Ketika saya telah meninjau semua file dan menambahkannya, maka saya dapat melakukan.Jadi ya, saya menemukan area pementasan sangat membantu.
Dan tidak, saya tidak pernah menggunakan
git commit -a
. Namun, saya sering menggunakannyagit add -u
. Dengan cara ini saya masih bisa memvisualisasikan apa yang harus dilakukan.sumber
Manfaatnya cukup sederhana: ini memberi Anda kontrol penuh atas file mana yang ingin Anda komit. Untuk itu, Anda dapat menggunakan
git add -p
untuk mengontrol baris mana yang ingin Anda komit.sumber
.gitignorelines
sehingga Anda dapat membuat perubahan lokal pada setiap baris yang dapat bertahan dari komitmen, dan tetap utuh.app.conf
yang berisi hal-hal yang ingin Anda bagikan, dandb.conf
yang baru saja Anda masukkan dalam daftar .gitignore. Masalah terpecahkan. Jika Anda menggunakan sesuatu yang berpemilik, Anda harus benar-benar mencari sesuatu yang sangat sederhana di sana. Atau letakkan melalui preprocessor dalam acara pra-bangun. Banyak solusi di sana.Salah satu manfaat yang saya sukai adalah kemampuan untuk melakukan sebagian perubahan. Yaitu., Dengan menggunakan git add -e. Saya tidak melakukan sesering seperti yang kadang-kadang saya lakukan, dan perintah git add -e memungkinkan saya mengurai perubahan saya sampai batas tertentu.
sumber