git-rerere - Online di Cloud

Ini adalah perintah git-rerere yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


git-rerere - Gunakan kembali resolusi rekaman dari penggabungan yang berkonflik

RINGKASAN


git Saya akan tertawa [jelas|lupa |diff|yang tersisa|status|gc]

DESKRIPSI


Dalam alur kerja yang menggunakan cabang topik yang berumur panjang, pengembang terkadang
perlu menyelesaikan konflik yang sama berulang kali sampai cabang topik selesai
(baik digabung ke cabang "rilis", atau dikirim dan diterima di hulu).

Perintah ini membantu pengembang dalam proses ini dengan merekam penggabungan otomatis yang bertentangan
hasil dan hasil penyelesaian tangan yang sesuai pada penggabungan manual awal, dan menerapkan
resolusi tangan yang direkam sebelumnya ke hasil automerge yang sesuai.

Note
Anda perlu mengatur variabel konfigurasi rerere.enabled untuk mengaktifkan ini
perintah.

PERINTAH


Biasanya, git Saya akan tertawa dijalankan tanpa argumen atau campur tangan pengguna. Namun, ia memiliki
beberapa perintah yang memungkinkannya berinteraksi dengan status kerjanya.

jelas
Setel ulang metadata yang digunakan oleh rerere jika resolusi penggabungan akan dibatalkan. Panggilan git
am [--lewati|--batalkan] or git Rebase [--lewati|--batalkan] akan secara otomatis memanggil ini
perintah.

lupa
Setel ulang resolusi konflik yang direkam ulang untuk konflik saat ini di
.

diff
Tampilan berbeda untuk status resolusi saat ini. Berguna untuk melacak apa
telah berubah saat pengguna menyelesaikan konflik. Argumen tambahan dilewatkan
langsung ke sistem diff perintah diinstal di PATH.

status
Jalur cetak dengan konflik yang akan direkam ulang resolusi penggabungannya.

yang tersisa
Cetak jalur dengan konflik yang belum diselesaikan secara otomatis oleh rerere. Ini termasuk
jalur yang resolusinya tidak dapat dilacak oleh rerere, seperti submodul yang saling bertentangan.

gc
Pangkas catatan penggabungan konflik yang terjadi sejak lama. Secara default,
konflik yang belum terselesaikan lebih dari 15 hari dan konflik yang diselesaikan lebih dari 60 hari adalah
dipangkas. Default ini dikontrol melalui gc.rerereUnresolved dan
gc.rerereResolved variabel konfigurasi masing-masing.

PEMBAHASAN


Saat cabang topik Anda memodifikasi area yang tumpang tindih yang cabang master Anda (atau hulu)
tersentuh karena cabang topik Anda bercabang darinya, Anda mungkin ingin mengujinya dengan yang terbaru
master, bahkan sebelum cabang topik Anda siap didorong ke hulu:

o---*---o topik
/
o---o---o---*---o---o tuan

Untuk tes semacam itu, Anda perlu menggabungkan master dan topik. Salah satu caranya adalah dengan menarik
master ke cabang topik:

$ git topik checkout
$ git menggabungkan master

o---*---o---+ topik
/ /
o---o---o---*---o---o tuan

Komit yang ditandai dengan * sentuh area yang sama di file yang sama; Anda harus menyelesaikannya
konflik saat membuat komit yang ditandai dengan +. Kemudian Anda dapat menguji hasilnya untuk membuat
pastikan pekerjaan Anda yang sedang berlangsung masih berfungsi dengan apa yang ada di master terbaru.

Setelah tes ini digabungkan, ada dua cara untuk melanjutkan pekerjaan Anda pada topik tersebut. Yang paling mudah
adalah membangun di atas komit gabungan uji +, dan ketika pekerjaan Anda di cabang topik adalah
akhirnya siap, tarik cabang topik ke master, dan/atau minta hulu untuk menarik dari
Anda. Namun, pada saat itu, master atau hulu mungkin telah maju sejak—
test merge +, dalam hal ini grafik komit terakhir akan terlihat seperti ini:

$ git topik checkout
$ git menggabungkan master
$ ... bekerja pada cabang topik dan master
$git checkout master
$ git menggabungkan topik

o---*---o---+---o---o topik
/ /
o---o---o---*---o----o---o---o---+ master

Namun, ketika cabang topik Anda berumur panjang, cabang topik Anda akan memiliki banyak
"Gabung dari master" seperti itu melakukan itu, yang tidak perlu mengacaukan pengembangan
sejarah. Pembaca milis kernel Linux mungkin ingat bahwa Linus mengeluh tentang
tes yang terlalu sering digabungkan ketika pengelola subsistem diminta untuk menarik dari cabang penuh
dari "gabungan yang tidak berguna".

Sebagai alternatif, untuk menjaga cabang topik tetap bersih dari penggabungan tes, Anda dapat menghilangkan
test merge, dan terus membangun di atas tip sebelum test merge:

$ git topik checkout
$ git menggabungkan master
$ git reset --hard HEAD^ ;# memundurkan penggabungan tes
$ ... bekerja pada cabang topik dan master
$git checkout master
$ git menggabungkan topik

o---*---o-------o---o topik
/
o---o---o---*---o----o---o---o---+ master

Ini hanya akan menyisakan satu komit gabungan ketika cabang topik Anda akhirnya siap dan digabungkan
ke cabang induk. Penggabungan ini akan mengharuskan Anda untuk menyelesaikan konflik, diperkenalkan
oleh komit yang ditandai dengan *. Namun, konflik ini sering kali merupakan konflik yang sama denganmu
teratasi saat Anda membuat gabungan uji yang membuat Anda gagal. git Saya akan tertawa membantu Anda menyelesaikan ini
penggabungan konflik terakhir menggunakan informasi dari penyelesaian tangan Anda sebelumnya.

Menjalankan git Saya akan tertawa perintah segera setelah automerge yang berkonflik merekam
file pohon kerja yang berkonflik, dengan penanda konflik biasa <<<<<<<, =======, dan
>>>>>>> di dalamnya. Nanti, setelah kamu selesai menyelesaikan konflik, jalankan git Saya akan tertawa
lagi akan merekam status terselesaikan dari file-file ini. Misalkan Anda melakukan ini ketika Anda membuat
penggabungan tes master ke cabang topik.

Lain kali, setelah melihat automerge berkonflik yang sama, berjalan git Saya akan tertawa akan melakukan
penggabungan tiga arah antara automerge yang berkonflik sebelumnya, resolusi manual sebelumnya,
dan automerge yang bertentangan saat ini. Jika penggabungan tiga arah ini diselesaikan dengan bersih, hasilnya
ditulis ke file pohon kerja Anda, jadi Anda tidak perlu menyelesaikannya secara manual. Catatan
bahwa git Saya akan tertawa meninggalkan file indeks saja, jadi Anda masih perlu melakukan kewarasan terakhir
cek dengan git diff (atau git diff -c) dan git menambahkan ketika Anda puas.

Sebagai ukuran kenyamanan, git bergabung secara otomatis memanggil git Saya akan tertawa setelah keluar dengan a
gagal automerge dan git Saya akan tertawa merekam penyelesaian tangan ketika itu adalah konflik baru, atau
menggunakan kembali penyelesaian tangan sebelumnya ketika tidak. git melakukan juga memanggil git Saya akan tertawa ketika
melakukan hasil penggabungan. Artinya, Anda tidak perlu melakukan sesuatu yang istimewa
sendiri (selain mengaktifkan variabel konfigurasi rerere.enabled).

Dalam contoh kami, ketika Anda melakukan penggabungan tes, resolusi manual direkam, dan itu akan
digunakan kembali ketika Anda melakukan penggabungan aktual nanti dengan cabang master dan topik yang diperbarui, sebagai
selama resolusi yang direkam masih berlaku.

Informasi git Saya akan tertawa catatan juga digunakan saat menjalankan git Rebase. Setelah bertiup
jauhkan penggabungan tes dan pengembangan berkelanjutan pada cabang topik:

o---*---o-------o---o topik
/
o---o---o---*---o----o---o---o master

$ git rebase topik utama

o---*---o-------o---o topik
/
o---o---o---*---o----o---o---o master

Anda dapat menjalankan topik master git rebase, untuk memperbarui diri Anda sebelum topik Anda
siap dikirim ke hulu. Ini akan mengakibatkan jatuh kembali ke penggabungan tiga arah, dan itu
akan bertentangan dengan cara yang sama seperti penggabungan tes yang Anda selesaikan sebelumnya. git Saya akan tertawa akan dijalankan
by git Rebase untuk membantu Anda menyelesaikan konflik ini.

GIT


Bagian dari git(1) kamar

Gunakan git-rerere online menggunakan layanan onworks.net



Program online Linux & Windows terbaru