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


Saya memulai beberapa pekerjaan pada fitur baru dan setelah coding untuk sedikit, saya memutuskan fitur ini harus berada di cabangnya sendiri.

Bagaimana cara memindahkan perubahan tidak terikat yang ada ke cabang baru dan menyetel ulang cabang saya saat ini?

Saya ingin mereset cabang saya saat ini sambil mempertahankan pekerjaan yang ada pada fitur baru.


2506
2017-09-08 15:57


asal


Jawaban:


Gunakan yang berikut:

git checkout -b <new-branch>

Ini akan meninggalkan cabang Anda saat ini, membuat dan memeriksa cabang baru dan menyimpan semua perubahan Anda. Anda kemudian dapat membuat komitmen dengan:

git add <files>

dan berkomitmen untuk cabang baru Anda dengan:

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

Perubahan dalam direktori kerja dan perubahan yang dipentaskan dalam indeks belum menjadi bagian dari cabang mana pun. Perubahan ini tempat perubahan tersebut akan berakhir.

Kamu tidak ulang cabang asli Anda, tetap seperti itu. Terakhir komit pada <old-branch> akan tetap sama. Karena itu kamu checkout -b dan kemudian berkomitmen.


2961
2017-09-08 15:59



Kalau tidak:

  1. Simpan perubahan saat ini ke simpanan sementara:

    $ git stash

  2. Buat cabang baru berdasarkan simpanan ini, dan beralihlah ke cabang baru:

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

Kiat: gunakan kunci tab untuk mengurangi pengetikan nama simpanan.


253
2018-06-19 00:18



Jika Anda telah membuat komitmen pada cabang utama Anda saat Anda dikodekan, tetapi Anda sekarang ingin memindahkan mereka yang melakukan commit ke cabang yang berbeda:

  1. Salin riwayat Anda saat ini ke dalam cabang baru, dengan membawa perubahan yang tidak terikat juga:

    git checkout -b <new-feature-branch>
    
  2. Sekarang paksa cabang asli "berantakan" untuk memutar kembali: (tanpa beralih ke itu)

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

    Sebagai contoh:

    git branch -f master origin/master
    

    atau jika Anda telah membuat 4 commit:

    git branch -f master HEAD~4
    

PERINGATAN: Sepertinya git branch -f master origin/master akan mengatur ulang informasi pelacakan untuk cabang itu. Jadi, jika Anda telah mengkonfigurasi Anda master cabang untuk mendorong ke tempat lain selain origin/master maka konfigurasi itu akan hilang.

Alternatifnya adalah menggunakan teknik pengaturan ulang ini. Tetapi instruksi tersebut akan membuang perubahan tanpa komitmen yang Anda miliki. Jika Anda ingin menyimpannya, simpan terlebih dahulu dan lepaskan mereka di bagian akhir.


35
2018-02-12 07:44



Jika Anda melakukannya, Anda juga bisa memilih singel ID tunggal. Saya sering melakukan ini ketika saya mulai bekerja di master, dan kemudian ingin membuat cabang lokal sebelum saya mendorong ke asal saya.

git cherry-pick <commitID>

Ada banyak yang bisa Anda lakukan dengan memilih ceri, seperti yang dijelaskan sini, tetapi ini bisa menjadi kasus penggunaan untuk Anda.


15
2017-11-30 20:58