Saya menemukan git sulit dimengerti karena saya tidak dapat menemukan arti dari kata-kata yang digunakan untuk tindakan. Saya telah memeriksa kamus untuk arti 'panggung' dan tidak ada makna yang terkait dengan konsep kontrol sumber.
Apa arti 'tahap' dalam konteks git?
git
version-control
000
sumber
sumber
git add file.ext
untuk file tertentu, ataugit add .
untuk mempengaruhi semua file yang dimodifikasi dan tidak terlacak. File yang telah ditambahkan dengan cara ini dikatakan "dipentaskan" dan akan dimasukkan dalam "komit" berikutnya. Komit adalah cuplikan dari karya Anda yang dibuat misalnya dengangit commit -m "I wrote something"
.Jawaban:
Untuk tahap file adalah hanya untuk mempersiapkannya dengan baik untuk komit. Git, dengan indeksnya memungkinkan Anda untuk melakukan hanya bagian tertentu dari perubahan yang telah Anda lakukan sejak komit terakhir. Katakanlah Anda sedang mengerjakan dua fitur - satu selesai, dan satu lagi masih perlu beberapa pekerjaan. Anda ingin membuat komit dan pulang (jam 5, akhirnya!) Tetapi tidak ingin mengkomit bagian dari fitur kedua, yang belum selesai. Anda menggelar bagian yang Anda tahu milik fitur pertama, dan melakukan. Sekarang komit Anda adalah proyek Anda dengan fitur pertama selesai, sementara yang kedua masih dalam proses dalam direktori kerja Anda.
sumber
Karena semua orang sejauh ini telah menjawabnya dengan cara "formal", izinkan saya melakukan ini dengan alternatif untuk meningkatkan pembelajaran dengan kekuatan metafora.
Jadi area pementasannya seperti:
Ini ajaib !
sumber
Pementasan adalah langkah sebelum proses komit di git. Yaitu, komit di git dilakukan dalam dua langkah: staging dan commit aktual
Selama changeset berada di area pementasan, git memungkinkan Anda untuk mengeditnya sesuka Anda (ganti file yang dipentaskan dengan versi lain dari file yang dipentaskan, hapus perubahan dari pementasan, dll.).
Waktu metafora yang rusak:
Pertimbangkan sebuah skenario di mana Anda memanggil penggerak untuk mendapatkan barang-barang Anda dari apartemen lama Anda ke apartemen baru Anda. Sebelum Anda melakukan itu, Anda akan memeriksa barang-barang Anda, memutuskan apa yang Anda bawa dan apa yang Anda buang, bungkus dalam tas dan tinggalkan di lorong utama. Penggerak hanya datang, mengambil tas (sudah dikemas) dari lorong dan mengangkutnya. Dalam contoh ini, semuanya sampai penggerak mendapatkan barang-barang Anda, adalah pementasan: Anda memutuskan apa yang pergi ke mana, bagaimana mengemasnya dan sebagainya (misalnya Anda dapat memutuskan bahwa setengah barang Anda akan dibuang sebelum penggerak bahkan sampai di sana - itu bagian pementasan).
Dari sudut pandang teknis, pementasan juga mendukung komitmen transaksional, dengan memecah semua operasi menjadi apa yang bisa gagal (pementasan) dan apa yang tidak bisa gagal (komit):
Komit dalam git diimplementasikan secara transaksi, setelah pementasan berhasil. Beberapa langkah dalam pementasan dapat gagal (misalnya, Anda perlu komit, tetapi HDD Anda 99,9999% penuh, dan git tidak memiliki ruang untuk melakukan komit). Ini akan gagal dalam pementasan (repositori Anda tidak akan rusak oleh komit parsial) dan proses pementasan tidak memengaruhi riwayat komit Anda (itu tidak merusak repositori Anda jika terjadi kesalahan).
sumber
Untuk tahap file adalah untuk mempersiapkannya untuk komit. Karena git memaparkan tindakan ini ke kontrol pengguna, itu memungkinkan Anda untuk membuat sebagian komitmen, atau untuk memodifikasi file, tahapan itu, memodifikasinya lagi, dan hanya melakukan atau mengembalikan ke modifikasi asli.
Staging memungkinkan Anda mengontrol lebih baik bagaimana Anda ingin mendekati kontrol versi.
sumber
Untuk menambah jawaban luar biasa lainnya, dari sinilah nama "panggung" berasal:
Dalam bahasa Inggris, "ke panggung" bisa berarti
(dari http://oxforddictionaries.com/definition/stage )
Nama "staging" untuk fitur git berasal dari makna ini: Ketika staging, Anda sedang mempersiapkan dan mengatur sebuah komit. Tentu saja komit tidak persis sama dengan kinerja, tetapi itu adalah peristiwa penting dalam VCS :-).
sumber
Dengan sebagian besar sistem kontrol versi lainnya, ada 2 tempat untuk menyimpan data: copy pekerjaan Anda (folder / file yang saat ini Anda gunakan) dan datastore (di mana kontrol versi memutuskan bagaimana mengemas dan menyimpan perubahan Anda). Di Git ada opsi ketiga: area pementasan (atau indeks). Ini pada dasarnya memuat dok di mana Anda bisa menentukan perubahan apa yang dikirim.
sumber: http://gitready.com/beginner/2009/01/18/the-staging-area.html
sumber
"Tahap" adalah langkah menengah yang diperlukan secara teknis dalam proses memeriksa file, yaitu mengumpulkan perubahan yang akan ditambahkan ke repositori. Penulis Git memilih untuk membuat langkah ini terlihat dan gigih di mana VCS lainnya menjadikannya bagian sementara dari proses komit. Jadi itu hanya opsi yang git berikan padamu karena bisa jadi kenapa tidak?
Cara saya melihatnya, hal utama git "stage" memberi Anda bahwa VCS lain tidak lakukan adalah Anda dapat menggunakannya untuk memeriksa file. Secara efektif ini adalah komit lokal tanpa nama yang tanpa komentar yang memberi Anda langkah menengah antara menyelesaikan semua pekerjaan Anda dan menyerahkannya ke repositori secara permanen dan tidak menyimpan apa pun di repo lokal Anda sama sekali.
Sebagai contoh, katakanlah Anda memiliki sebagian fitur selesai. Ini dalam keadaan stabil, lulus semua tes, dan bisa masuk ke produksi, tetapi Anda memiliki lebih banyak pekerjaan untuk dilakukan. Anda dapat mengatur semua perubahan Anda dan kemudian terus bekerja pada fitur.
Kemudian, Anda akan memiliki opsi untuk hanya melakukan apa yang Anda staged (dan mendorong komit itu ke repositori jarak jauh) atau untuk menambahkan perubahan baru Anda ke area pementasan Anda dan kemudian melakukan itu sekaligus, atau untuk membatalkan hanya perubahan baru Anda dan kembalikan direktori kerja Anda ke status saat Anda melakukan perubahan.
Sangat mungkin untuk melewatkan area pementasan secara praktis dan hanya menggunakan
-a
opsi untukgit commit
jika Anda tidak menemukan area pementasan konsep yang bermanfaat. Banyak orang melewatkan pementasan dan alat GUI biasanya memungkinkan untuk ini juga.sumber
Pemahaman saya adalah, misalkan saya sedang mengembangkan fitur login dan diperlukan 5 langkah berturut-turut untuk menyelesaikan. Jadi di sini pementasan akan membantu Anda untuk mengerjakan langkah-langkah seperti
dilakukan dengan langkah 1 tahap itu.
dilakukan dengan langkah 2, sekarang langkah 1 dan langkah 2 keduanya sudah benar tahapannya.
mengacaukan dengan langkah 3 tidak ada masalah checkout langkah bertahap terbaru yaitu langkah 2
cara yang sama setelah Anda selesai dengan semua 5 langkah yang berarti fitur selesai sekarang melakukan komit.
sumber