Pertanyaan Ekspor simpanan ke komputer lain


Saya perlu cara untuk mengekspor perubahan yang disembunyikan ke komputer lain.

Di Computer1 saya lakukan

$ git stash save feature

Saya mencoba untuk mendapatkan patch simpanan ke file dan kemudian mengimpornya ke komputer lain

$ git stash show -p > patch

Perintah ini memberi saya file yang saya dapat pindah ke komputer lain di mana repo ini dikloning, tetapi pertanyaannya adalah bagaimana cara mengimpornya sebagai simpanan lagi.

Terima kasih


219
2017-10-19 21:41


asal


Jawaban:


Anda dapat menerapkan file tambalan (tanpa melakukan perubahan) dengan hanya menjalankan

git apply patchfile

Kemudian Anda cukup membuat simpanan baru dari direktori kerja saat ini:

git stash

221
2017-10-19 21:46



atau Anda dapat membuat cabang dari simpanan Anda (di komputer 1), menggunakan

git stash branch stashed_changes_branch

komit perubahan Anda:

git commit -a

kemudian tambahkan sebagai remote di komputer 2:

git remote add pc1 user@computer1:/path/to/repo

sekarang Anda dapat mengambil informasi jarak jauh menggunakan

git fetch pc1

sekarang Anda dapat mengimpor commit dengan cara yang Anda inginkan; menggunakan git cherry-pick, git rebase atau apa pun yang Anda suka ... Jika Anda ingin terlihat seperti yang baru saja Anda lakukan git simpanan berlaku; Kamu dapat memakai git cherry-pick --no-commit.


Jika Anda tidak memiliki koneksi langsung antara komputer1 dan komputer2; Anda dapat menggunakan remote (seperti github atau yang serupa):

git push origin stashed_changes_branch

dan di komputer2:

git fetch

11
2018-01-04 11:13



Atau Anda dapat mengekspor seluruh simpanan lokal ke kompter lain sebagai berikut

  • git pull pada kedua direktori git lama dan baru Anda untuk memastikan bahwa keduanya memiliki perubahan terbaru.
  • salin folder .git dari direktori git lama ke repositori baru

6
2018-04-08 05:17



Pilihan lainnya adalah rsync itu .git folder dari satu komputer ke komputer lain. rsync proses hanya perubahan file (lebih cepat dari salinan).

Satu kelemahan dari pendekatan ini adalah konfigurasi juga akan ditimpa, yang mungkin tidak diinginkan jika Anda menjalankan konfigurasi git yang berbeda di antara kedua mesin. Tapi Anda bisa mengatasi ini dengan mengecualikan file dengan --exclude opsi dalam rsync.

Secara keseluruhan saya pikir solusi Git asli lebih bersih, tapi ini rsync hack bisa bagus untuk seseorang yang terburu-buru yang mungkin lebih akrab dengan rsync daripada git.


2
2017-07-18 13:43



Perintah startup dari posting asli:

git stash show -p stash@{x} > patch_file

tidak bekerja untuk saya (untuk beberapa alasan itu menciptakan file tambalan yang tidak dapat digunakan). Sebaliknya saya harus:

git stash apply stash@{x}
git commit

untuk setiap simpanan yang ingin saya transfer. Kemudian, saya menempatkan repo 'parent' dalam file: /// reach of the 'child' repo, dan melakukan yang berikut, untuk setiap simpanan simpanan:

git fetch file:///path_to_parent_git && git cherry-pick commit_sha
git reset --soft HEAD^
git stash save my_new_stash_on_child

Ini lebih kompleks tetapi melakukan trik untuk saya.


0
2017-10-11 15:06



Jika Anda ingin memindahkan perubahan dari satu komputer ke komputer lain, Anda selalu dapat melakukan perubahan pada mesin Anda dan kemudian melakukan soft reset pada mesin mereka.

Kantor

git commit -m "-stash-"

Dapur

git reset --soft HEAD~1


0
2017-07-24 09:24