Git

Git Stash dengan Nama

Git Stash dengan Nama

Cara Git Menyimpan Perubahan Anda dengan Nama Bersekutu dan Cari Selepas itu

Pembangun sering kali melakukan pelbagai tugas. Anda mungkin sedang mengusahakan fitur baru dan mungkin ada permintaan untuk memperbaiki bug. Atau anda mungkin menjadi pembangun utama dalam pelbagai projek.

Semasa anda beralih antara tugas, kadang-kadang anda tidak mahu melakukan kerja yang belum selesai. Dalam kes-kes ini, perintah git stash boleh sangat membantu. Ini membolehkan anda menyusun perubahan anda dan kemudian kembali ke karya yang belum selesai tanpa menambahkan komitmen yang tidak perlu ke git repositori anda.

Aliran Kerja untuk Git Stash

Mari mulakan cawangan induk git dan buat fail ReadMe.txt.

$ mkdir my_projek
$ cd my_projek /
$ git init
$ sentuh ReadMe.txt
$ git tambah -A
$ git commit -m "Permulaan"

Sekarang mari kita tambahkan fail lain yang dipanggil.txt ke cawangan induk.

$ sentuhan a.txt
$ git tambah -A
$ git commit -m "Ditambah a.txt "

Sekiranya anda menyemak sejarah, anda akan melihat:

$ git log - talian
d79f7aa Ditambah a.txt
9434d7e Memulakan

Sekarang mari kita buat cabang feature1 dan tambahkan b.fail txt:

ciri cawangan $ git1
ciri pembayaran $ git1
$ sentuhan b.txt
$ git tambah -A
$ git commit -m "Ditambah b.txt "

Buka b anda.fail txt di editor dan masukkan baris:

Saya akan menukarnya kepada…

Dan simpan failnya. Sekiranya anda memeriksa status git anda, anda melihat perkara berikut:

status $ git
Pada ciri cawangan1
Perubahan yang tidak dilakukan untuk melakukan:
(gunakan "git add … "Untuk mengemas kini perkara yang akan dilakukan)
(gunakan "git checkout -- … "Untuk membuang perubahan dalam direktori kerja)
 
diubah suai: b.txt
 
tidak ada perubahan yang ditambahkan ke komit (gunakan "git add" dan / atau "git commit -a")

Andaikan, pada tahap ini, anda mendapat permintaan untuk mengemas kini a.fail txt di cawangan induk. Tetapi anda tidak selesai dengan b.fail txt. Sekiranya anda cuba memeriksa cabang induk, anda mendapat ralat berikut:

$ git master checkout
ralat: Perubahan tempatan anda pada fail berikut akan ditimpa oleh pembayaran:
b.txt
Tolong, lakukan perubahan anda atau simpan sebelum anda boleh menukar cawangan.
Menggugurkan

Tetapi anda tidak mahu melakukan kerja yang belum selesai di b.txt. Anda boleh menggunakan git stash dalam situasi ini:

$ git simpanan
Direktori kerja yang tersimpan dan keadaan indeks WIP pada fitur1: 2cfe39b Ditambahkan b.txt
HEAD kini berada di 2cfe39b Ditambahkan b.txt

Sekiranya anda memeriksa b.txt, mestilah kosong:

$ kucing b.txt
$

Sekiranya anda memeriksa simpanan, anda akan melihat:

senarai $ git stash
stash @ 0: WIP pada ciri1: 2cfe39b Ditambahkan b.txt

Sekiranya anda mencuba cawangan induk, anda seharusnya dapat melakukannya sekarang:

$ git master checkout
Beralih ke cawangan 'tuan'

Katakan anda membuat perubahan yang diperlukan pada master dan kemudian kembali ke feature1 branch:

Ciri pembayaran $ git1

B anda.txt masih kosong:

$ kucing b.txt
$

Tetapi jika anda mendapat perubahan dari simpanan menggunakan perintah berikut:

$ git stash berlaku
 
Pada ciri cawangan1
Perubahan yang tidak dilakukan untuk melakukan:
(gunakan "git add … "Untuk mengemas kini perkara yang akan dilakukan)
(gunakan "git checkout -- … "Untuk membuang perubahan dalam direktori kerja)
 
diubah suai: b.txt
 
tidak ada perubahan yang ditambahkan ke komit (gunakan "git add" dan / atau "git commit -a")

Perintah stash apply mengambil perubahan tersimpan dan menerapkannya ke b.fail txt
Anda boleh menyelesaikan kerja anda di b.txt saya mengubah suai baris

Saya akan menukarnya kepada…


Ke

Saya akan menukarnya menjadi SELESAI

Sekarang teruskan dan lakukan perubahan anda:

$ git tambah -A
$ git commit -m "Diubah suai b.txt ”

Menggunakan stash tidak akan membersihkannya secara automatik dari simpanan. Anda mesti membersihkannya secara manual:

$ git penurunan simpanan
Penjatuhan / stash yang dijatuhkan @ 0 (0a66a16b32633e8d564d08e38254c491c1b1d3be)

Kenapa Git Stash dengan Nama?

Git stash adalah timbunan. Oleh itu, anda boleh terus membuat perubahan.

Katakan anda menambah "X" ke b.txt, simpan, tambahkan "Y" ke b.txt, simpan dan tambahkan "Z" ke b.txt dan simpannya. Sekiranya anda menyemak sejarah simpanan, anda akan melihat perkara seperti ini:

senarai $ git stash
[dilindungi e-mel] 0: WIP pada ciri1: 2d6f515 Diubah suai b.txt
[dilindungi e-mel] 1: WIP pada ciri1: 2d6f515 Diubah suai b.txt
[dilindungi e-mel] 2: WIP pada ciri1: 2d6f515 Diubah suai b.txt

Anda tidak mempunyai cara untuk mengetahui simpanan mana yang berubah. Apabila anda menyimpan, anda boleh menggunakan pilihan simpan untuk memasukkan komen. Anda boleh menggunakan komen untuk melampirkan nama ke simpanan anda dan membuatnya dapat dikenali:

$ git stash simpan "X"
Direktori kerja yang tersimpan dan keadaan indeks Pada ciri1: X
KEPALA kini berada di 2d6f515 Diubah suai b.txt

Untuk menambahkan modifikasi “X”, “Y” dan “Z”, Anda dapat memperoleh yang berikut di simpanan menggunakan pilihan simpan untuk setiap simpanan:

senarai $ git stash
stash @ 0: Pada ciri1: Z
stash @ 1: Pada ciri1: Y
stash @ 2: Pada ciri1: X

Sekarang anda mempunyai nama untuk setiap perubahan yang anda simpan. Malangnya, anda tidak dapat menggunakan nama untuk mendapatkan simpanan. Anda mesti menggunakan nombor simpanan. Katakan anda mahu mendapatkan perubahan "Y" anda. Anda melihat bahawa [dilindungi e-mel] 1 adalah Y. Oleh itu, anda boleh menerapkan perubahan tersebut ke cawangan semasa anda:

$ git stash berlaku stash @ 1

Dan b anda.txt semestinya mempunyai perubahan dari [dilindungi e-mel] 1.

Anda boleh menggunakan kaedah yang sama untuk menjatuhkan simpanan. Katakan, anda sedar bahawa anda tidak memerlukan stash X lagi. Anda hanya boleh menggunakan perintah berikut untuk menghapus simpanan itu:

$ git stash drop stash @ 2

Dan simpanan harus hilang:

senarai $ git stash
stash @ 0: Pada ciri1: Z
stash @ 1: Pada ciri1: Y

Ingat bahawa jika anda menggunakan pilihan aplikasikan dan jatuhkan tanpa parameter apa pun, ia akan menggunakan bahagian atas timbunan ([dilindungi e-mel] 0).

Kesimpulannya

Perintah git stash adalah kaedah yang kuat untuk mengurus ruang kerja anda. Menguasai perintah ini akan membantu anda bekerja dengan lebih cekap.

Sambung belajar:
  • https: // git-scm.com / book / en / v1 / Git-Tools-Stashing
Rujukan:

Stack Overflow: how-to-name-and-retrieve-a-stash-by-name-in-git

WinMouse membolehkan anda menyesuaikan & meningkatkan pergerakan penunjuk tetikus pada PC Windows
Sekiranya anda ingin meningkatkan fungsi lalai penunjuk tetikus anda gunakan perisian percuma WinMouse. Ia menambah lebih banyak ciri untuk membantu a...
Butang klik kiri tetikus tidak berfungsi pada Windows 10
Sekiranya anda menggunakan tetikus khusus dengan komputer riba, atau komputer desktop anda tetapi butang klik kiri tetikus tidak berfungsi pada Window...
Kursor melompat atau bergerak secara rawak semasa menaip di Windows 10
Sekiranya anda mendapati kursor tetikus anda melompat atau bergerak sendiri, secara automatik, secara rawak semasa menaip komputer riba atau komputer ...