Pindahkan pekerjaan yang sudah ada dan tidak terikat ke cabang baru di Git

Saya mulai mengerjakan fungsi baru, dan setelah mengkodekan sedikit, saya memutuskan bahwa fungsi ini harus di cabang terpisah.

Bagaimana cara mentransfer perubahan yang tidak dikomit yang ada ke cabang baru dan mengatur u>

Saya ingin mengatur u>

2540
08 сент. diatur oleh Dane O'Connor 08 Sep. 2009-09-08 18:57 '09 pada 18:57 2009-09-08 18:57
@ 5 balasan

Gunakan yang berikut ini:

 git checkout -b <new-branch> 

Ini akan membiarkan cabang Anda saat ini apa adanya, membuat dan memeriksa cabang baru dan menyimpan semua perubahan Anda. Kemudian Anda dapat melakukan menggunakan:

 git add <files> 

dan kirim cabang baru menggunakan:

 git commit -m "<Brief description of this commit>" 

Perubahan dalam direktori kerja dan perubahan yang dibuat dalam indeks belum menjadi milik cabang apa pun. Ini akan berubah saat perubahan ini selesai.

Anda tidak perlu mengatur u><old-branch> akan tetap sama. Jadi Anda checkout -b dan kemudian perbaiki.

2999
08 сент. Jawabannya diberikan knittl 08 sep . 2009-09-08 18:59 '09 pada 18:59 2009-09-08 18:59

Atau:

  • Simpan perubahan tempo Anda saat ini:

    $ git stash

  • Buat cabang baru berdasarkan cache ini dan beralih ke cabang baru:

    $ git stash branch <new-branch> stash@{0}

Dewan Gunakan tombol tab untuk mengurangi masuknya nama dompet.

257
19 июня '15 в 3:18 2015-06-19 03:18 jawabannya diberikan oleh Robin Qiu 19 Juni '15 pukul 3:18 2015-06-19 03:18

Jika Anda membuat komit di cabang utama Anda selama penyandian, tetapi sekarang Anda ingin memindahkan komit ini ke cabang lain:

  1. Salin riwayat saat ini ke utas baru, juga buat perubahan yang tidak dikomit:

     git checkout -b <new-feature-branch> 
  2. Sekarang paksa cabang kotor asli untuk mundur: (tanpa beralih ke sana)

     git branch -f <previous-branch> <earlier-commit-id> 

    Sebagai contoh:

     git branch -f master origin/master 

    atau jika Anda membuat 4 fiksasi:

     git branch -f master HEAD~4 

Peringatan Tampaknya git branch -f master origin/master akan mengatur u>master untuk mendorongnya ke suatu tempat, kecuali untuk origin/master konfigurasi ini akan hi>

Alternatifnya adalah menggunakan teknik reset ini . Tetapi instruksi ini akan membuang semua perubahan tidak tetap yang Anda miliki. Jika Anda ingin menyimpannya, sembunyikan terlebih dahulu dan buka kunci di akhir.

37
12 февр. jawaban yang diberikan oleh joeytwiddle pada 12 Feb. 2016-02-12 10:44 '16 pada 10:44 2016-02-12 10:44

Jika Anda melakukan ini, Anda juga dapat memilih widget untuk satu komit. Saya sering melakukan ini ketika saya mulai bekerja dengan master, dan kemudian saya ingin membuat cabang lokal sebelum saya meningkatkan permulaan /.

 git cherry-pick <commitID> 

Di sini Anda dapat melakukan banyak hal dengan bantuan cherry-pick, seperti dijelaskan di sini , tetapi ini bisa menjadi preseden bagi Anda.

16
30 нояб. jawabannya diberikan kata sandi 30 Nov. 2015-11-30 23:58 '15 jam 11:58 2015-11-30 23:58

Skenario umum adalah sebagai berikut: Saya lupa membuat cabang baru untuk fungsi baru dan melakukan semua pekerjaan di fungsi cabang lama. Saya telah menyelesaikan semua pekerjaan "lama" di cabang master, dan saya ingin cabang baru saya berevolusi dari "master". Saya belum membuat fiksasi tunggal untuk pekerjaan baru saya. Berikut adalah struktur cabang: "master" → "Old_feature"

 git stash git checkout master git checkout -b "New_branch" git stash apply 
1
13 авг. balasan yang diberikan oleh Alex Burov 13 Agustus. 2018-08-13 19:07 '18 pada 19:07 2018-08-13 19:07

Pertanyaan lain tentang tag atau Ajukan pertanyaan