πŸ”§ Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с git mergetool vimdiff

Git mergetool vimdiff позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ vimdiff Π² качСствС инструмСнта слияния для Git. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌ: 1. УстановитС vimdiff, Ссли Π΅Π³ΠΎ Π΅Ρ‰Π΅ Π½Π΅Ρ‚ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. 2. Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ "git mergetool" Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. 3. Git ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ слияния, ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ инструмСнт слияния. 4. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ vimdiff, ввСдя Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€. 5. Vimdiff откроСтся, показывая Π²Π°ΠΌ Ρ‚Ρ€ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ: базовая вСрсия Ρ„Π°ΠΉΠ»Π°, ваша тСкущая вСрсия ΠΈ измСнСния ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. 6. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ vim для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ сравнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. 7. Π Π΅ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Ρ„Π°ΠΉΠ» Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ соотвСтствовал вашим прСдпочтСниям. 8. ПослС рСдактирования сохранитС Ρ„Π°ΠΉΠ» ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ vimdiff. 9. Git ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ процСсс слияния с вашим внСсСнным ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git mergetool ΠΈ vimdiff:
git mergetool
1
АвтоматичСская настройка vimdiff для использования ΠΏΡ€ΠΈ слиянии Ρ„Π°ΠΉΠ»ΠΎΠ² Git:
git config --global merge.tool vimdiff
Π’ΠΎΡ‚ ΠΈ всС! Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git mergetool vimdiff для слияния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Git.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ git mergetool vimdiff?

Git mergetool vimdiff - это инструмСнт, прСдоставляСмый Git, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния Ρ„Π°ΠΉΠ»ΠΎΠ² с использованиСм тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Vimdiff. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git mergetool vimdiff ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания.

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ vimdiff?

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git mergetool vimdiff, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Vimdiff установлСн Π½Π° вашСй систСмС. Если Ρƒ вас ΡƒΠΆΠ΅ установлСн Vim, вСроятно, ΠΈ Vimdiff Ρ‚Π°ΠΊΠΆΠ΅ установлСн. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Vimdiff, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° Linux:


    sudo apt-get install vimdiff
    

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ установки Vimdiff, Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ вмСстС с git mergetool.

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git mergetool vimdiff?

Когда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния Π² Git, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ git mergetool vimdiff, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» Π² Vimdiff ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚. Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:


    git mergetool --tool=vimdiff
    

Git mergetool vimdiff ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ всС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² Vimdiff, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° Ρ‚Ρ€ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ:

  • ΠŸΠ΅Ρ€Π²Π°Ρ панСль - ваш Ρ„Π°ΠΉΠ» (LOCAL) с измСнСниями, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌΠΈ Π² вашСй Π²Π΅Ρ‚ΠΊΠ΅;
  • Вторая панСль - Ρ„Π°ΠΉΠ» с ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠΌ (BASE);
  • Π’Ρ€Π΅Ρ‚ΡŒΡ панСль - измСнСния ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ (REMOTE).

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Vimdiff для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈ принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

  • :diffg RE - ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ измСнСния ΠΈΠ· REMOTE ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊ LOCAL;
  • :diffg BA - ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния ΠΈΠ· BASE ΠΊ LOCAL;
  • :diffg LO - ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния Π² LOCAL ΠΈ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ состояниС Π² BASE;
  • :diffupdate - ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°Π½Π΅Π»ΠΈ Vimdiff послС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ;
  • :wqa - ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Vimdiff.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ всС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈ сохранили Ρ„Π°ΠΉΠ»Ρ‹, Git ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ измСнСния ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ слияниС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ git mergetool vimdiff.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° слияния Π² Ρ„Π°ΠΉΠ»Π΅ script.js


    function foo() {
        <<<<<<< HEAD
        console.log("Changes made in my branch");
        =======
        console.log("Changes made in another branch");
        >>>>>>> branch_name
    }
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π°, рСализованная функция foo() ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠ°Ρ…. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git mergetool vimdiff для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° слияния Π² Ρ„Π°ΠΉΠ»Π΅ script.js. Π’ Vimdiff Π²Ρ‹ смоТСтС ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ измСнСния ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ получился ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° слияния Π² Ρ„Π°ΠΉΠ»Π΅ styles.css


    .button {
        <<<<<<< HEAD
        background-color: red;
        color: white;
        =======
        background-color: blue;
        color: black;
        >>>>>>> branch_name
    }
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π°, CSS-стили для класса button ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠ°Ρ…. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git mergetool vimdiff Π²Ρ‹ смоТСтС Π»Π΅Π³ΠΊΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ стили, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ сохранСны.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Git mergetool vimdiff являСтся ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния Ρ„Π°ΠΉΠ»ΠΎΠ² с использованиСм тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Vimdiff. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Vimdiff, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git mergetool vimdiff ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ эффСктивно Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния Π² Git ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

7.1 Git - БлияниС - "Π˜ΡΡ‚ΠΈΠ½Π½ΠΎΠ΅" слияниС ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π² git merge

vimdiff ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π² VCS Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ GIT

Git: Π£Ρ€ΠΎΠΊ 10. БлияниС Π²Π΅Ρ‚ΠΎΠΊ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Научный Ρ€Π΅ΠΆΠΈΠΌ Π² PyCharm: Ρ‡Ρ‚ΠΎ это ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ πŸ”¬πŸ”§

πŸ”§ Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с git mergetool vimdiff

Π Π΅ΠΆΠΈΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ доступа vs code: Ρ‡Ρ‚ΠΎ это

⬇️ Как ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π² PyCharm Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ: пошаговая инструкция

πŸ”— Как ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ Π² git bash Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: Π»Π΅Π³ΠΊΠΈΠΉ Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ