Saya memiliki 'proyek pertama' cabang dengan 2 komit. Saya ingin menyingkirkan komit ini dan membuatnya muncul sebagai komit tunggal.
Perintahnya git merge --squash
terdengar menjanjikan, tetapi ketika saya menjalankan git merge --squash
terminal saya hanya menampilkan opsi untuk perintah tersebut. Apa perintah yang benar?
Commit 1:
Added 'homepage.html'
Added 'contacts.html'
Commit 2:
Added 'homepage.php'
Added 'homepage.php'
Deleted 'homepage.html'
Deleted 'contacts.html'
Jawaban:
Anda ingin
git rebase -i
melakukan rebase interaktif .Jika Anda saat ini menggunakan "komit 1", dan komit yang ingin Anda gabungkan, "komit 2", adalah komit sebelumnya, Anda dapat menjalankan
git rebase -i HEAD~2
, yang akan memunculkan editor yang mencantumkan semua komit yang akan dilalui oleh rebase. Anda akan melihat dua baris yang dimulai dengan "pick". Untuk melanjutkan dengan squash, ubah kata pertama pada baris kedua dari "pick" menjadi "squash". Kemudian simpan file Anda, dan keluar. Git akan menekan komit pertama Anda ke komit terakhir kedua.Perhatikan bahwa proses ini menulis ulang sejarah cabang Anda. Jika Anda mendorong kode Anda ke suatu tempat, Anda harus melakukannya
git push -f
dan siapa pun yang membagikan kode Anda harus melewati beberapa rintangan untuk menarik perubahan Anda.Perhatikan bahwa jika dua komit yang dipermasalahkan bukan dua komit terakhir di cabang, prosesnya akan sedikit berbeda.
sumber
Then write your file, and quit
? Saya menggunakan Terminal Android Studio, konsol git itu sendiri Atau bahkan membuka konsol git dengan perangkat lunak SourceTree. Tapi bagaimana cara menabung dan berhenti?Versi sederhana malas untuk pelupa seperti saya:
git rebase -i HEAD~3
atau berapa banyak komit, bukan 3.Putar ini
ke dalam ini
dan lakukan beberapa tindakan di mana Anda menekan
esc
laluenter
untuk menyimpan perubahan. [1]Ketika layar berikutnya muncul, singkirkan sampah # baris [2] dan buat pesan komit baru atau sesuatu, dan lakukan
escape
enter
tindakan yang sama . [1]Wowee, Anda memiliki lebih sedikit komitmen. Atau Anda baru saja merusak segalanya.
[1] - atau apa pun yang berfungsi dengan konfigurasi git Anda. Ini hanya urutan yang efisien berdasarkan pengaturan saya.
[2] - Anda akan melihat beberapa hal seperti
# this is your n'th commit
beberapa kali, dengan komit asli Anda tepat di bawah pesan ini. Anda ingin menghapus baris ini, dan membuat pesan komit untuk mencerminkan maksud dari n komit yang Anda gabungkan menjadi 1.sumber
s
digunakan di sini singkatan dari squash. Untuk menggunakan komit, tetapi berbaur dengan komit sebelumnya2
melakukan dan ingin menggabungkan2
komit yang sama , Anda harus menjalankangit reset --soft HEAD~
dangit commit --amend
.git rebase -i HEAD~<quantity of your commits>
(yaitugit rebase -i HEAD~5
)txt
file yang dibuka, ubahpick
kata kunci menjadisquash
untuk semua komit, kecuali komit pertama (yang ada di atas). Untuk yang teratas, ubah kereword
(yang berarti Anda akan memberikan komentar baru untuk komit ini di langkah berikutnya) dan klik SIMPAN! Jika di vim, tekanesc
lalu simpan dengan memasukkanwq!
dan tekan enter.Selesai
sumber