Cara mengatasi menggabungkan konflik di Git

Bagaimana cara mengatasi menggabungkan konflik di Git?

Mengomentari pertanyaan (13)
Larutan

Coba: git mergetool

Terbuka GUI yang langkah anda melalui setiap konflik, dan anda bisa memilih bagaimana untuk menggabungkan. Kadang-kadang hal ini membutuhkan sedikit tangan editing setelah itu, tapi biasanya itu's cukup dengan sendirinya. Hal ini jauh lebih baik daripada melakukan semuanya dengan tangan tentunya.

Sebagai per @JoshGlover komentar:

Perintah doesn't selalu membuka GUI kecuali jika anda menginstal satu. Menjalankan git mergetooluntuk saya menghasilkanvimdiffyang digunakan. Anda dapat menginstal salah satu dari alat-alat berikut untuk menggunakannya bukan:berbaur,opendiff,kdiff3,tkdiff,xxdiff,tortoisemerge,gvimdiff,meredakan,socius,p4merge,araxis,vimdiff,muncul`.

Di bawah ini adalah contoh prosedur untuk menggunakan vimdiff untuk menyelesaikan menggabungkan konflik. Berbasis di link ini

Langkah 1: Jalankan perintah berikut di terminal anda

git config merge.tool vimdiff
git config merge.conflictstyle diff3
git config mergetool.prompt false

Ini akan mengatur vimdiff sebagai default merge.

Langkah 2: Jalankan perintah berikut di terminal

git mergetool

Langkah 3: Anda akan melihat vimdiff tampilan dalam format berikut

  ╔═══════╦══════╦════════╗
  ║       ║      ║        ║
  ║ LOCAL ║ BASE ║ REMOTE ║
  ║       ║      ║        ║
  ╠═══════╩══════╩════════╣
  ║                       ║
  ║        MERGED         ║
  ║                       ║
  ╚═══════════════════════╝

Ini 4 views

LOKAL – ini adalah file dari cabang saat ini

DASAR – umum nenek moyang, cara melihat file sebelum kedua perubahan

REMOTE – file anda adalah penggabungan ke cabang anda

DIGABUNG – gabungkan hasilnya, ini adalah apa yang akan disimpan di repo

Anda dapat menavigasi di antara pandangan-pandangan ini menggunakan pilih+w. Anda dapat langsung mencapai DIGABUNG lihat menggunakan pilih+w diikuti oleh j.

Info lebih lanjut tentang vimdiff navigasi di sini dan di sini

Langkah 4. Anda bisa mengedit DIGABUNG melihat cara berikut

Jika anda ingin mendapatkan perubahan dari jarak JAUH

:diffg RE  

Jika anda ingin mendapatkan perubahan dari BASIS

:diffg BA  

Jika anda ingin mendapatkan perubahan dari LOKAL

:diffg LO 

Langkah 5. Save, Exit, dan Melakukan bersih-Bersih

:wqa simpan dan keluar dari vi

git commit-m "pesan"`

git bersih Menghapus file-file tambahan (misalnya *.orig) yang dibuat oleh diff alat.

Komentar (20)

Berikut ini's kemungkinan-kasus penggunaan, dari atas:

Anda'kembali akan melakukan beberapa perubahan, tapi oops, anda're tidak up to date:

git fetch origin
git pull origin master

From ssh://gitosis@example.com:22/projectname
 * branch            master     -> FETCH_HEAD
Updating a030c3a..ee25213
error: Entry 'filename.c' not uptodate. Cannot merge.

Jadi anda mendapatkan up-to-date dan mencoba lagi, tapi memiliki konflik:

git add filename.c
git commit -m "made some wild and crazy changes"
git pull origin master

From ssh://gitosis@example.com:22/projectname
 * branch            master     -> FETCH_HEAD
Auto-merging filename.c
CONFLICT (content): Merge conflict in filename.c
Automatic merge failed; fix conflicts and then commit the result.

Jadi anda memutuskan untuk mengambil melihat perubahan:

git mergetool

Oh my, oh my, hulu mengubah beberapa hal, tetapi hanya menggunakan perubahan saya...tidak...mereka berubah...

git checkout --ours filename.c
git checkout --theirs filename.c
git add filename.c
git commit -m "using theirs"

Dan kemudian kami mencoba akhir waktu

git pull origin master

From ssh://gitosis@example.com:22/projectname
 * branch            master     -> FETCH_HEAD
Already up-to-date.

Ta-da!

Komentar (15)

Saya menemukan menggabungkan alat-alat yang jarang membantu saya memahami konflik atau resolusi. I'm biasanya lebih sukses melihat konflik spidol di editor teks dan menggunakan git log sebagai suplemen.

Berikut ini adalah beberapa tips:

Tip Satu

Hal terbaik yang saya telah menemukan adalah dengan menggunakan "diff3" konflik gabungan gaya:

git config bergabung.conflictstyle diff3

Hal ini menghasilkan konflik penanda seperti ini:

>

Bagian tengah adalah apa yang nenek moyang tampak seperti. Hal ini berguna karena anda bisa membandingkannya dengan bagian atas dan bawah versi untuk mendapatkan rasa yang lebih baik dari apa yang berubah pada masing-masing cabang, yang memberi anda ide yang lebih baik untuk apa tujuan dari masing-masing perubahan itu.

Jika konflik ini hanya beberapa baris, ini umumnya membuat konflik yang sangat jelas. (Mengetahui bagaimana untuk memperbaiki konflik sangat berbeda; anda perlu menyadari apa yang orang lain kerjakan. Jika anda're bingung, it's mungkin yang terbaik untuk hanya memanggil orang itu ke kamar anda sehingga mereka dapat melihat apa yang anda're melihat.)

Jika konflik lagi, maka saya akan cut dan paste masing-masing dari tiga bagian menjadi tiga berkas terpisah, seperti "saya", "biasa" dan "mereka".

Kemudian saya dapat menjalankan perintah berikut untuk melihat dua diff bakhil yang menyebabkan konflik:

diff common mine
diff common theirs

Ini tidak sama dengan menggunakan gabungan alat, karena menggabungkan alat ini akan mencakup semua dari non-konflik diff bakhil terlalu. Saya menemukan bahwa untuk menjadi mengganggu.

Tip Dua

Seseorang yang sudah disebutkan ini, tetapi memahami maksud di balik setiap diff cowok umumnya sangat membantu untuk memahami di mana konflik datang dari dan bagaimana untuk menangani hal itu.


git log --merge -p 
Komentar (5)
  1. Mengidentifikasi file yang konflik (Git harus memberitahu anda ini).

  2. Buka masing-masing file dan memeriksa bedanya; Git demarcates mereka. Mudah-mudahan itu akan menjadi jelas versi mana dari masing-masing blok untuk menjaga. Anda mungkin perlu untuk membicarakan hal ini dengan rekan-rekan pengembang yang berkomitmen kode.

  3. Setelah anda've diselesaikan konflik dalam sebuah file git add the_file.

  4. Setelah anda've diselesaikan semua konflik, melakukan git rebase --melanjutkan atau apapun perintah Git kata yang harus dilakukan ketika anda selesai.

Komentar (7)

Memeriksa jawaban di Stack Overflow pertanyaan Batal gabungan di Git, terutama Charles Bailey's jawaban yang menunjukkan bagaimana untuk melihat versi yang berbeda dari file dengan masalah, misalnya,

# Common base version of the file.
git show :1:some_file.cpp

# 'Ours' version of the file.
git show :2:some_file.cpp

# 'Theirs' version of the file.
git show :3:some_file.cpp
Komentar (2)

Gabungan konflik terjadi ketika perubahan yang dibuat ke file pada waktu yang sama. Berikut adalah cara untuk memecahkan itu.

git CLI

Berikut ini adalah langkah-langkah sederhana apa yang harus dilakukan ketika anda mendapatkan dalam keadaan konflik:

  1. Perhatikan daftar file berkonflik dengan: git status (di bawah Unmerged jalan bagian).
  2. Memecahkan konflik secara terpisah untuk masing-masing file dengan salah satu pendekatan berikut:
  • Menggunakan GUI untuk memecahkan konflik: git mergetool (cara termudah).

  • Untuk menerima remote/versi lain, menggunakan: git checkout --mereka path/file. Ini akan menolak setiap perubahan lokal anda lakukan untuk file itu.

  • Untuk menerima lokal/versi kami, menggunakan: git checkout --kita path/file

Namun anda've untuk berhati-hati, seperti remote perubahan yang konflik dilakukan untuk beberapa alasan.

Terkait: https://stackoverflow.com/q/25576415/55075

  • Edit file yang konflik secara manual dan mencari kode blok antara <<<<</>>>>> kemudian pilih versi kedua dari atas atau bawah =====. Lihat: Bagaimana konflik yang disajikan.

  • Path dan nama file konflik dapat diselesaikan dengan git add/git rm.

  1. Akhirnya, review file siap untuk berkomitmen menggunakan: git status.

Jika anda masih memiliki file-file di bawah Unmerged jalan, dan kau berhasil memecahkan konflik secara manual, kemudian biarkan Git tahu bahwa anda dipecahkan oleh: git add path/file.

  1. Jika semua konflik diselesaikan dengan sukses, melakukan perubahan dengan: git commit-a dan push ke remote seperti biasa.

Lihat juga: Penyelesaian konflik gabungan dari command line di GitHub

Untuk tutorial praktis, cek: Skenario 5 - Memperbaiki Gabungan Konflik dengan Katacoda.

DiffMerge

I've berhasil digunakan DiffMerge yang secara visual dapat membandingkan dan menggabungkan file pada Windows, macOS dan Linux/Unix.

Secara grafis dapat menunjukkan perubahan antara 3 file dan memungkinkan penggabungan otomatis (jika aman untuk melakukannya) dan kontrol penuh atas mengedit file yang dihasilkan.

sumber Gambar: DiffMerge (Linux screenshot)

Hanya men-download dan menjalankan di repo sebagai:

git mergetool -t diffmerge .

macOS

Pada macOS dapat anda instal melalui:

brew install caskroom/cask/brew-cask
brew cask install diffmerge

Dan mungkin (jika tidak tersedia), anda perlu tambahan berikut pembungkus sederhana ditempatkan di JALAN anda (misalnya /usr/bin):

#!/bin/sh
DIFFMERGE_PATH=/Applications/DiffMerge.app
DIFFMERGE_EXE=${DIFFMERGE_PATH}/Contents/MacOS/DiffMerge
exec ${DIFFMERGE_EXE} --nosplash "$@"

Kemudian anda dapat menggunakan pintasan keyboard berikut:

  • ⌘-Alt-Up/Down untuk melompat ke sebelumnya/berikutnya perubahan.
  • ⌘-Alt-Left/Right untuk menerima perubahan dari kiri atau kanan

Atau anda dapat menggunakan opendiff (bagian dari Xcode alat-Alat) yang memungkinkan anda menggabungkan dua file atau direktori yang sama untuk membuat ketiga file atau direktori.

Komentar (0)

Jika anda're membuat kecil sering melakukan, kemudian mulai dengan melihat melakukan komentar dengan git log --gabungan. Kemudian git diff akan menunjukkan konflik.

Untuk konflik yang melibatkan lebih dari beberapa baris, it's mudah untuk melihat apa yang's terjadi di eksternal GUI tool. Saya suka opendiff -- Git juga mendukung vimdiff, gvimdiff, kdiff3, tkdiff, berbaur, xxdiff, muncul keluar dari kotak dan anda dapat menginstal lain: git config bergabung.alat "anda.alat" akan mengatur alat pilihan anda dan kemudian git mergetool setelah gagal bergabung akan menunjukkan bedanya dalam konteks.

Setiap kali anda mengedit file untuk menyelesaikan konflik, git add file akan memperbarui indeks dan anda diff tidak akan lagi menunjukkan hal itu. Ketika semua konflik yang ditangani dan file mereka telah git add-ed, git commit akan menyelesaikan anda bergabung.

Komentar (1)

Melihat Bagaimana Konflik Presented atau, dalam Git, yang git merge dokumentasi untuk memahami apa yang menggabungkan konflik spidol.

Juga, Cara untuk Menyelesaikan Konflik bagian ini menjelaskan cara mengatasi konflik:

Setelah melihat konflik, anda dapat melakukan dua hal:

  • Memutuskan untuk tidak bergabung. Satu-satunya bersih-up yang anda butuhkan adalah untuk mengatur ulang file indeks untuk KEPALA berkomitmen untuk membalikkan 2. dan untuk membersihkan bekerja pohon perubahan yang dibuat oleh 2. dan 3.; git merge --batalkan dapat digunakan untuk ini.
  • Menyelesaikan konflik. Git akan menandai konflik dalam bekerja pohon. Mengedit file ke dalam bentuk dan git add mereka untuk indeks. Menggunakan git commit` untuk menyegel kesepakatan.

Anda dapat bekerja melalui konflik dengan sejumlah alat:

  • Menggunakan mergetool. git mergetool untuk memulai grafis mergetool yang akan bekerja anda melalui penggabungan.
  • Melihat bedanya. git diff akan menampilkan tiga-cara diff, menyoroti perubahan dari KEPALA dan MERGE_HEAD versi.
  • Lihat bedanya dari masing-masing cabang. git log --gabungan -p <jalan> akan menunjukkan diffs pertama untuk KEPALA dan kemudian MERGE_HEAD versi.
  • Melihat aslinya. git show :1:filename menunjukkan nenek moyang yang sama, git show :2:filename menunjukkan KEPALA versi, dan git show :3:filename menunjukkan MERGE_HEAD versi.

Anda juga dapat membaca tentang konflik gabungan spidol dan cara mengatasinya di Pro Git bagian buku Dasar Menggabungkan Konflik.

Komentar (0)

Untuk Emacs pengguna yang ingin menyelesaikan menggabungkan konflik semi-manual:

git diff --name-status --diff-filter=U

menunjukkan semua file yang memerlukan resolusi konflik.

Buka masing-masing file satu per satu atau semua sekaligus dengan:

emacs $(git diff --name-only --diff-filter=U)

Ketika mengunjungi sebuah penyangga yang membutuhkan suntingan dalam Emacs, jenis

ALT+x vc-resolve-conflicts

Ini akan membuka tiga buffer (saya, mereka, dan output buffer). Menavigasi dengan menekan 'n' (berikutnya wilayah), 'p' (ramalan wilayah). Tekan 'a' dan 'b' untuk salinan tambang atau wilayah mereka ke output buffer, masing-masing. Dan/atau mengedit output buffer ini diatas.

Ketika selesai: Tekan 't'. Emacs meminta anda jika anda ingin menyimpan buffer ini: ya. Setelah menyelesaikan penyangga menandainya sebagai diselesaikan dengan menjalankan dari teriminal:

git add FILENAME

Setelah selesai dengan semua jenis buffer

git commit

untuk menyelesaikan penggabungan.

Komentar (0)

Aku juga ingin saya atau versi mereka secara penuh, atau ingin meninjau perubahan individu dan memutuskan untuk masing-masing dari mereka.

Sepenuhnya menerima saya atau mereka version:

Menerima versi saya (lokal, kita):

git checkout --ours -- <Filename>
git add <Filename>              # Marks conflict as resolved
git commit -m "merged bla bla"  # An "empty" commit

Menerima versi mereka (remote, mereka):

git checkout --theirs -- <Filename>
git add <Filename>
git commit -m "merged bla bla"

Jika anda ingin melakukan untuk semua konflik file jalankan:

git merge --strategy-option ours

atau

git merge --strategy-option theirs

Review semua perubahan dan menerima mereka secara individual

  1. git mergetool
  2. Review perubahan dan menerima baik versi untuk masing-masing dari mereka.
  3. git add <file>
  4. git commit-m "digabung bla bla"

Default mergetool bekerja di command line. Bagaimana menggunakan baris perintah mergetool harus terpisah pertanyaan.

Anda juga dapat menginstal alat bantu visual untuk hal ini, misalnya berbaur dan menjalankan

git mergetool -t meld

Ini akan membuka versi lokal (milik kita), "tempat" atau "merger" versi (saat ini hasil dari penggabungan) dan remote (versi mereka). Menyimpan digabung versi ketika anda selesai, jalankan git mergetool -t berbaur lagi sampai anda mendapatkan "Tidak ada file yang perlu penggabungan", kemudian pergi ke Langkah 3. dan 4.

Komentar (2)

Hanya, jika anda tahu dengan baik bahwa perubahan pada salah satu repositori yang tidak penting, dan ingin menyelesaikan semua perubahan dalam mendukung yang lain, gunakan:

git checkout . --ours

untuk mengatasi perubahan dalam mendukung repositori anda, atau

git checkout . --theirs

untuk mengatasi perubahan dalam mendukung lain atau repositori utama.

Atau yang lain anda akan memiliki untuk menggunakan GUI merge untuk langkah melalui file satu per satu, mengatakan penggabungan alat p4merge, atau menulis satu's nama anda've sudah diinstal

git mergetool -t p4merge

dan setelah menyelesaikan sebuah file, anda akan memiliki untuk menyimpan dan menutup, sehingga berikutnya akan terbuka.

Komentar (2)

Silakan ikuti langkah-langkah berikut untuk memperbaiki gabungan konflik di Git:

  1. Periksa Git status: git status

  2. Mendapatkan patchset: git fetch (checkout hak patch dari Git commit)

  3. Checkout cabang lokal (temp1 dalam contoh saya di sini): git checkout -b temp1

  4. Tarik beberapa isi dari master: git pull --rebase asal master

  5. Mulai mergetool dan memeriksa konflik dan memperbaikinya...dan memeriksa perubahan dalam cabang terpencil dengan anda saat ini cabang: git mergetool

  6. Memeriksa status lagi: git status

  7. Menghapus file yang tidak diinginkan secara lokal dibuat oleh mergetool, biasanya mergetool menciptakan tambahan file dengan *.orig ekstensi. Silahkan hapus file yang duplikat dan memperbaiki perubahan secara lokal dan menambahkan versi yang benar dari file anda. git add #your_changed_correct_files

  8. Memeriksa status lagi: git status

  9. Melakukan perubahan untuk commit sama id (hal ini untuk menghindari baru yang terpisah patch set): git commit-mengubah

  10. Mendorong untuk menguasai cabang: git push (ke repositori Git)

Komentar (0)

Bonus:

Dalam berbicara tarik/ambil/gabung di atas jawaban ini, saya ingin berbagi aplikasi yang menarik dan produktif trik,

git pull --rebase

Ini perintah di atas adalah yang paling berguna perintah di git kehidupan yang menyimpan banyak waktu.

Sebelum mendorong anda baru saja melakukan perubahan ke remote server, coba git pull --rebase agak git pull manual menggabungkan dan secara otomatis akan sync terbaru server remote perubahan (dengan mengambil + merge) dan akan menempatkan anda lokal terbaru komit di atas dalam git log. Tidak perlu khawatir tentang manual pull/merge.

Dalam kasus konflik, hanya menggunakan

git mergetool
git add conflict_file
git rebase --continue

Menemukan rincian di: http://gitolite.com/git-pull--rebase

Komentar (0)

Ada 3 langkah:

  1. Menemukan file mana yang menyebabkan konflik dengan perintah

git status

  1. Periksa file, di mana anda akan menemukan konflik ditandai seperti

<<<<<<<<head blablabla

  1. Perubahan itu ke arah yang anda inginkan, kemudian melakukan dengan perintah

git add solved_conflicts_files git commit-m 'menggabungkan msg'

Komentar (2)

Anda bisa memperbaiki gabungan konflik dalam sejumlah cara lain yang telah rinci.

Saya pikir kuncinya adalah mengetahui bagaimana perubahan aliran dengan lokal dan remote repositori. Kunci untuk ini adalah pemahaman pelacakan cabang. Saya telah menemukan bahwa saya pikir pelacakan cabang sebagai 'bagian yang hilang di tengah' antara aku lokal saya, sebenarnya file dan direktori remote didefinisikan sebagai asal.

I've pribadi masuk ke kebiasaan dari 2 hal untuk membantu menghindari hal ini.

Bukannya:

git add .
git commit -m"some msg"

Yang memiliki dua kelemahan -

a) Semua baru/mengubah file yang ditambahkan dan yang mungkin mencakup beberapa perubahan yang tidak diinginkan. b) Anda don't mendapatkan ulasan daftar file pertama.

Jadi, bukannya saya lakukan:

git add file,file2,file3...
git commit # Then type the files in the editor and save-quit.

Dengan cara ini anda lebih disengaja tentang file yang akan ditambahkan dan anda juga bisa meninjau daftar dan berpikir sedikit lebih banyak saat menggunakan editor pesan. Saya menemukan hal ini juga meningkatkan saya melakukan pesan ketika saya menggunakan editor layar penuh daripada -m pilihan.

[Update - seperti waktu telah berlalu aku've beralih lebih ke:

git status # Make sure I know whats going on
git add .
git commit # Then use the editor

]

Juga (dan lebih relevan untuk situasi anda), saya mencoba untuk menghindari:

git pull

atau

git pull origin master.

karena tarik menyiratkan gabungan dan jika anda memiliki perubahan lokal yang anda didn't ingin bergabung, anda dapat dengan mudah berakhir dengan bergabung kode dan/atau gabungan konflik untuk kode yang seharusnya't telah bergabung.

Bukannya saya mencoba untuk melakukan

git checkout master
git fetch   
git rebase --hard origin/master # or whatever branch I want.

Anda juga dapat menemukan ini berguna:

https://stackoverflow.com/questions/3329943/git-branch-fork-fetch-merge-rebase-and-clone-what-are-the-differences/9204499#9204499

Komentar (2)

CoolAJ86's jawaban meringkas segala sesuatu cukup banyak. Dalam kasus anda memiliki perubahan di kedua cabang-cabang di bagian yang sama dari kode yang anda akan memiliki untuk melakukan manual gabungan. Membuka file dalam konflik di editor teks apapun dan anda harus melihat struktur berikut.


(Code not in Conflict)
>>>>>>>>>>>
(first alternative for conflict starts here)
Multiple code lines here
===========
(second alternative for conflict starts here)
Multiple code lines here too    
Komentar (0)
git log --merge -p [[--] path]

Tampaknya tidak selalu bekerja untuk saya dan biasanya berakhir menampilkan setiap melakukan yang berbeda antara dua cabang, hal ini terjadi bahkan ketika menggunakan -- untuk memisahkan path dari perintah.

Apa yang saya lakukan untuk mengatasi masalah ini adalah membuka dua baris perintah dan dalam satu run

git log ..$MERGED_IN_BRANCH --pretty=full -p [path]

dan di lain

git log $MERGED_IN_BRANCH.. --pretty=full -p [path]

Mengganti $MERGED_IN_BRANCH dengan cabang saya bergabung di [path] dengan file yang saling bertentangan. Perintah ini akan mencatat semua komit, dalam bentuk patch, antara (..) dua komit. Jika anda meninggalkan satu sisi kosong seperti pada perintah di atas git secara otomatis akan menggunakan KEPALA (cabang anda adalah penggabungan ke dalam kasus ini).

Ini akan memungkinkan anda untuk melihat apa yang berkomitmen pergi ke file dalam dua cabang setelah mereka menyimpang. Hal ini biasanya membuat lebih mudah untuk menyelesaikan konflik.

Komentar (0)

Pada tanggal 12 desember 2016, anda dapat menggabungkan cabang dan menyelesaikan konflik di github.com

Dengan demikian, jika anda don't ingin menggunakan command-line atau pihak ke-3 alat-alat yang ditawarkan di sini lebih tua dari jawaban, pergi dengan GitHub's asli alat.

Posting blog ini menjelaskan secara detail, tapi dasar-dasar yang pada 'penggabungan' dua cabang melalui UI, sekarang anda akan melihat 'menyelesaikan konflik' opsi yang akan membawa anda ke sebuah editor yang memungkinkan anda untuk berurusan dengan ini menggabungkan konflik.

Komentar (3)

Menggunakan kesabaran

I'm terkejut tidak ada orang lain yang berbicara tentang penyelesaian konflik menggunakan kesabaran dengan menggabungkan rekursif strategi. Untuk menggabungkan konflik, menggunakan kesabaran memberikan hasil yang baik bagi saya. Idenya adalah bahwa ia akan mencoba untuk mencocokkan blok daripada garis individu.

Jika anda mengubah indentasi dari program anda misalnya, default Git merge strategi kadang-kadang pertandingan tunggal kurawal { yang termasuk fungsi yang berbeda. Hal ini dihindari dengan kesabaran:

git merge -s recursive -X patience other-branch

Dari dokumentasi:

With this option, merge-recursive spends a little extra time to avoid 
mismerges that sometimes occur due to unimportant matching lines 
(e.g., braces from distinct functions). Use this when the branches to 
be merged have diverged wildly.

Dibandingkan dengan nenek moyang yang sama

Jika anda memiliki konflik gabungan dan ingin melihat apa yang orang lain miliki dalam pikiran ketika memodifikasi cabang, it's kadang-kadang lebih mudah untuk membandingkan cabang mereka langsung dengan nenek moyang yang sama (bukan cabang kami). Untuk itu anda dapat menggunakan menggabungkan basis:

git diff $(git merge-base  ) 

Biasanya, anda hanya ingin melihat perubahan untuk file tertentu:

git diff $(git merge-base  )  <File>
Komentar (1)

Saya selalu ikuti langkah-langkah berikut untuk menghindari konflik.

  • git checkout master (Datang ke cabang utama)
  • git pull (Update master anda untuk mendapatkan kode terbaru)
  • git checkout -b mybranch (Checkout baru cabang dan mulai bekerja di cabang sehingga guru selalu tetap atas batang.)
  • git add . DAN git git commit DAN push (pada cabang lokal anda setelah perubahan)
  • git checkout master (kembali ke master.)

Sekarang anda bisa melakukan hal yang sama dan memiliki banyak cabang lokal anda inginkan dan bekerja secara simultan saya hanya melakukan git checkout ke cabang anda ketika pernah diperlukan.

Komentar (0)