Git

Git Stash dengan Nama

Git Stash dengan Nama

Cara Git Stash Perubahan Anda dengan Nama Terkait dan Temukan Setelahnya

Pengembang sering harus melakukan banyak tugas. Anda mungkin sedang mengerjakan fitur baru dan mungkin ada permintaan untuk memperbaiki bug. Atau Anda mungkin menjadi pengembang utama di beberapa proyek.

Saat Anda beralih di antara tugas, terkadang Anda tidak ingin melakukan pekerjaan yang belum selesai. Dalam kasus ini, perintah git stash bisa sangat membantu. Ini memungkinkan Anda untuk menumpuk perubahan Anda dan kemudian kembali ke pekerjaan yang belum selesai tanpa menambahkan komitmen yang tidak perlu ke repositori git Anda.

Alur Kerja untuk Git Stash

Mari inisialisasi cabang master git dan komit file ReadMe.txt.

$ mkdir my_project
$ cd proyek_saya/
$ git init
$ sentuh ReadMe.txt
$ git tambahkan -A
$ git commit -m "Inisialisasi"

Sekarang mari tambahkan file lain bernama a.txt ke cabang master.

$ sentuh.txt
$ git tambahkan -A
$ git commit -m "Ditambahkan.txt"

Jika Anda memeriksa riwayatnya, Anda akan melihat:

$ git log --oneline
d79f7aa Ditambahkan.txt
9434d7e Inisialisasi

Sekarang mari buat cabang feature1 dan tambahkan b.berkas.txt:

$ git fitur cabang1
$ git fitur checkout1
$ sentuh b.txt
$ git tambahkan -A
$ git commit -m "Ditambahkan b.txt"

Buka b Anda.txt di editor dan masukkan ke dalam baris:

Saya akan mengubah ini menjadi…

Dan simpan filenya. Jika Anda memeriksa status git Anda, Anda akan melihat yang berikut:

$git status
Pada fitur cabang1
Perubahan tidak dipentaskan untuk komit:
(gunakan "git add … " untuk memperbarui apa yang akan dilakukan)
(gunakan "git checkout -- … " untuk membuang perubahan di direktori kerja)
 
diubah:   b.txt
 
tidak ada perubahan yang ditambahkan ke komit (gunakan "git add" dan/atau "git commit -a")

Misalkan, pada tahap ini, Anda mendapatkan permintaan untuk memperbarui a.file txt di cabang master. Tapi Anda belum selesai dengan b.file txt. Jika Anda mencoba memeriksa cabang master, Anda mendapatkan kesalahan berikut:

$git checkout master checkout
kesalahan: Perubahan lokal Anda ke file berikut akan ditimpa oleh checkout:
b.txt
Tolong, komit perubahan Anda atau simpan sebelum Anda dapat berpindah cabang.
Aborsi

Tapi Anda tidak ingin melakukan pekerjaan yang belum selesai di b.txt. Anda dapat menggunakan git stash dalam situasi ini:

$ git simpanan
Direktori kerja yang disimpan dan status indeks WIP pada fitur1: 2cfe39b Ditambahkan b.txt
HEAD sekarang di 2cfe39b Ditambahkan b.txt

Jika Anda memeriksa b.txt, itu harus kosong:

$ kucing b.txt
$

Jika Anda memeriksa simpanan, Anda akan melihat:

$ git daftar simpanan
stash@0: WIP pada fitur1: 2cfe39b Ditambahkan b.txt

Jika Anda mencoba memeriksa cabang master, Anda seharusnya dapat melakukannya sekarang:

$git checkout master checkout
Beralih ke cabang 'master'

Misalkan Anda membuat perubahan yang diperlukan pada master dan kemudian kembali ke cabang feature1:

$ git fitur checkout1

Anda.txt masih kosong:

$ kucing b.txt
$

Tetapi jika Anda mendapatkan perubahan dari simpanan menggunakan perintah berikut:

$ git simpanan berlaku
 
Pada fitur cabang1
Perubahan tidak dipentaskan untuk komit:
(gunakan "git add … " untuk memperbarui apa yang akan dilakukan)
(gunakan "git checkout -- … " untuk membuang perubahan di direktori kerja)
 
diubah:   b.txt
 
tidak ada perubahan yang ditambahkan ke komit (gunakan "git add" dan/atau "git commit -a")

Perintah simpanan berlaku mengambil perubahan simpanan dan menerapkannya ke b.file txt
Anda dapat menyelesaikan pekerjaan Anda di b.txt saya memodifikasi baris

Saya akan mengubah ini menjadi…


Untuk

Saya akan mengubah ini menjadi SELESAI

Sekarang lanjutkan dan komit perubahan Anda:

$ git tambahkan -A
$ git commit -m "Dimodifikasi oleh.txt"

Menerapkan simpanan tidak secara otomatis membersihkannya dari simpanan. Anda harus membersihkannya secara manual:

penurunan simpanan $git
Referensi/simpanan yang dihapus@0 (0a66a16b32633e8d564d08e38254c491c1b1d3be)

Mengapa Git Stash dengan Nama?

Git stash adalah tumpukan. Jadi Anda dapat terus menumpuk perubahan Anda.

Misalkan Anda menambahkan "X" ke b.txt, simpan, tambahkan "Y" ke b.txt, simpan dan tambahkan "Z" ke b.txt dan simpan itu. Jika Anda memeriksa riwayat simpanan, Anda akan melihat sesuatu seperti ini:

$ git daftar simpanan
[dilindungi email]0: WIP pada fitur1: 2d6f515 Dimodifikasi oleh.txt
[dilindungi email]1: WIP pada fitur1: 2d6f515 Dimodifikasi oleh.txt
[dilindungi email]2: WIP pada fitur1: 2d6f515 Dimodifikasi oleh.txt

Anda tidak memiliki cara untuk mengetahui simpanan mana yang memiliki perubahan. Saat Anda menyimpan, Anda dapat menggunakan opsi simpan untuk memberi komentar. Anda dapat menggunakan komentar untuk melampirkan nama ke simpanan Anda dan membuatnya dapat dikenali:

$ git simpanan simpan "X"
Direktori kerja dan status indeks yang disimpan Pada fitur1: X
HEAD sekarang di 2d6f515 Dimodifikasi b.txt

Untuk menambahkan modifikasi "X", "Y" dan "Z", Anda bisa mendapatkan yang berikut di simpanan Anda menggunakan opsi simpan untuk setiap simpanan:

$git daftar simpanan
simpanan@0: Aktif fitur1: Z
simpanan@1: Aktif fitur1: Y
simpanan@2: Aktif fitur1: X

Sekarang Anda memiliki nama untuk setiap perubahan yang Anda sembunyikan. Sayangnya, Anda tidak dapat menggunakan nama untuk mengambil simpanan. Anda harus menggunakan nomor simpanan. Misalkan Anda ingin mendapatkan perubahan "Y" Anda. Anda melihat bahwa [dilindungi email]1 adalah Y. Jadi, Anda dapat menerapkan perubahan itu ke cabang Anda saat ini:

$ git simpanan terapkan simpanan@1

Dan b .mu.txt harus memiliki perubahan dari [dilindungi email]1.

Anda dapat menggunakan metode yang sama untuk menjatuhkan simpanan. Misalkan, Anda menyadari bahwa Anda tidak membutuhkan simpanan X lagi. Anda bisa menggunakan perintah berikut untuk menghapus simpanan itu:

$ git simpanan jatuhkan simpanan@2

Dan simpanan itu harus hilang:

$git daftar simpanan
simpanan@0: Aktif fitur1: Z
simpanan@1: Aktif fitur1: Y

Ingat bahwa jika Anda menggunakan opsi terapkan dan lepas tanpa parameter apa pun, itu akan menggunakan tumpukan teratas ([dilindungi email]0).

Kesimpulan

Perintah git stash adalah cara yang ampuh untuk mengelola ruang kerja Anda. Menguasai perintah ini akan membantu Anda bekerja lebih efisien.

Pelajaran lanjutan:
  • https://git-scm.com/book/en/v1/Git-Tools-Stashing
Referensi:

Stack Overflow: bagaimana-menamai-dan-mengambil-a-simpanan-dengan-nama-di-git

5 Game Arkade Terbaik untuk Linux
Saat ini, komputer adalah mesin serius yang digunakan untuk bermain game. Jika Anda tidak bisa mendapatkan skor tinggi baru, Anda akan tahu apa yang s...
Pertempuran Untuk Wesnoth 1.13.6 Pengembangan Dirilis
Pertempuran Untuk Westnoth 1.13.6 dirilis bulan lalu, adalah rilis pengembangan keenam dalam 1.13.x series dan memberikan sejumlah peningkatan, teruta...
Cara Menginstal League Of Legends di Ubuntu 14.04
Jika Anda adalah penggemar League of Legends, maka ini adalah kesempatan bagi Anda untuk menguji coba League of Legends. Perhatikan bahwa LOL didukung...