Pertanyaan Bagaimana saya bisa git menyimpan file tertentu? [duplikat]


Kemungkinan Duplikat:
Cara menyimpan hanya satu file dari beberapa file yang telah diubah 

Bagaimana saya bisa menyimpan file tertentu dengan meninggalkan yang lain yang saat ini diubah dari simpanan yang akan saya simpan?

Sebagai contoh, jika status git memberi saya ini:

younker % gst      
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   app/controllers/cart_controller.php
#   modified:   app/views/cart/welcome.thtml
#
no changes added to commit (use "git add" and/or "git commit -a")

dan saya hanya ingin menyimpan app / views / cart / welcome.thtml, bagaimana saya melakukannya? Sesuatu seperti (tapi tentu saja ini tidak berhasil):

git stash save welcome_cart app/views/cart/welcome.thtml

1030
2018-03-31 21:05


asal


Jawaban:


EDIT: Sejak git 2.13, ada perintah untuk menyimpan jalur khusus ke simpanan: git stash push <path>. Sebagai contoh: git stash push -m welcome_cart app/views/cart/welcome.thtml.

JAWABAN LAMA:

Anda dapat melakukannya menggunakan git stash --patch (atau git stash -p) - Anda akan memasuki mode interaktif di mana Anda akan disajikan dengan setiap bingkah yang diubah. Menggunakan n untuk melewati file yang tidak ingin Anda simpan, y ketika Anda menemukan salah satu yang ingin Anda simpulkan, dan q untuk berhenti dan meninggalkan bangkai yang tersisa tidak tercuci. a akan menyimpan bingkisan yang ditampilkan dan sisa bongkahan di file itu.

Bukan pendekatan yang paling user-friendly, tetapi itu mendapatkan pekerjaan yang dilakukan jika Anda benar-benar membutuhkannya.


1574
2018-03-31 21:19



Saya biasanya menambahkan ke perubahan indeks Saya tidak ingin menyimpan dan kemudian menyimpan dengan opsi --keep-index.

git add app/controllers/cart_controller.php
git stash --keep-index
git reset

Langkah terakhir adalah opsional, tetapi biasanya Anda menginginkannya. Ini menghapus perubahan dari indeks.


PERINGATAN Sebagaimana dicatat dalam komentar, ini menempatkan semuanya ke dalam simpanan, baik dipentaskan maupun tidak. The --keep-index hanya meninggalkan indeks sendirian setelah simpanan selesai. Ini dapat menyebabkan konflik gabungan saat nanti Anda mencabut simpanannya.


245
2017-12-18 20:40