Ярлык Git, игра готова!

внешний интерфейс Git

Оригинал: Miss Sister Taste (идентификатор публичной учетной записи WeChat: xjjdog), добро пожаловать, пожалуйста, сохраните источник для перепечатки.

Несколько дней назад кто-то в компании проводил git-тренинг, и лекция была настолько скучной, что аудитория уснула. Это не может не напомнить мне об очень хорошем визуальном инструменте обучения git. С помощью этого инструмента git-тренеров в компании можно уволить.

В этой статье этот инструмент будет подробно представлен, а адрес инструмента будет указан в конце статьи.

Git уже является обязательным навыком для программистов, но у него есть барьеры. Во многих случаях только овладение такими командами, как pull, push и commit, не может решить проблему, особенно при наличии конфликта.

image.png

Согласно введенной вами команде git, весь этот процесс анимирован. Указав на стрелку, вы можете легко увидеть, как меняется поток данных репозитория git.

Набор систем с открытым исходным кодом для учебных целей, добро пожаловать в звезду:GitHub.com/star hotel о, хорошо/неплохо…. Он включает в себя сложный бизнес ToB, бизнес с высокой степенью параллелизма в Интернете, приложение кэширования, DDD, руководство по микросервисам. Управляемый моделью, управляемый данными. Поймите путь эволюции крупномасштабных сервисов, навыки кодирования, изучите Linux и настройте производительность. Помощь Docker/k8s, мониторинг, сбор логов, изучение промежуточного ПО. Front-end технология, back-end практика и т.д. Основная техника:SpringBoot+JPA+Mybatis-plus+Antd+Vue3.

1. Отправить связанные

Ниже представлена ​​анимация отправки двух коммитов. Мы видим, что версия менялась дважды и имеет тот же цвет.

git commit
git commit

2021-03-06 14-31-39.2021-03-06 14_32_56.gifНа рисунке ниже показана инструкция, которая выполняет новую ветвь. Указав параметр b, ветвь может быть создана автоматически, когда она не существует.

git checkout -b bugFix

2.gif

Ниже создается новая ветка bugFix.После отправки кода в main и bugFix соответственно, исправление сливается с main с помощью команды merge.

git checkout -b bugFix
git commit 
git checkout master
git commit 
git merge bugFix

3.gif

Rebase сделает код более понятным. На следующем рисунке показано использование команды rebase.

git checkout -b bugFix
git commit
git checkout main
git commit
git checkout bugFix
git rebase main

4.gif

2. ГОЛОВА двигаться

HEAD всегда указывает на самую последнюю фиксацию в текущей ветке. Большинство команд Git, изменяющих дерево коммитов, начинают с изменения того, на что указывает HEAD.

Очень удобно перемещаться вверх и вниз по HEAD.

На следующем рисунке показано, что HEAD можно указать непосредственно через хеш-значение. С помощью Checkout вы можете перейти к любому коммиту в любое время.

git checkout c4

21.gif

пройти через^,~и другие специальные символы для совершения относительных прыжков. Больше не нужно искать это очень длинное хеш-значение. Поговорите с картинкой.

git checkout bugFix
git checkout HEAD^

22.gif

Конечно, вы можете упростить прямо до

git checkout bugFix^

Разве это не просто?

такой же,~Этот символ может сопровождаться цифровым, для достижения четных хоп. Мы смотрим на его эффект.

git branch -f bugFix HEAD~2 
git branch -f main c6
git checkout HEAD^

23.gif

И сброс, и возврат используются для отката фиксации. Но, условно говоря, сброс предназначен для локального, а возврат - для удаленного.

git reset c1
git checkout pushed
git revert c2

24.gif

Вышеуказанные функции охватывают 90% операций git. Однако, если вы не можете играть в остальные 10%, в некоторых случаях это может сильно раздражать.

3. cherry-pick

Cherry-pick — самый простой способ, если вы хотите скопировать некоторые коммиты в текущем местоположении (HEAD). Лично мне очень нравится выбор вишни, потому что это очень просто.

Он отличается от git rebase тем, что вы можете выбрать только некоторые коммиты и получить их.

git cherry-pick c3 c4 c7

c3.gif

В качестве альтернативы мы также можем использовать интерактивную перебазировку. Например,git rebase -i HEAD~nОткроется диалоговое окно для настройки, которое здесь повторяться не будет.

Интерактивная перебазировка относится к использованию команды перебазирования с параметром --interactive, сокращенно -i.

4. Несколько хитростей

Изучив вышеизложенное, можно сказать, что вы должны хорошо выполнять свою работу. Вот несколько часто используемых техник.

image.pngЧтобы завершить преобразование приведенного выше рисунка, просто переключитесь на основную ветку и выполнитеgit cherry-pick c4Вот и все.

git checkout main
git cherry-pick c4

Следующий пример более сложен. Ранее вы сделали коммит в ветке newImage, затем создали на его основе ветку caption и сделали еще один коммит. На этом этапе вы хотите внести небольшие коррективы в предыдущую фиксацию. Например, дизайнер хочет изменить разрешение изображения в newImage, даже если запись фиксации не актуальна.

git rebase -i HEAD~2 #修改C2和C3的顺序
git commit --amend
git rebase -i HEAD~2 #修改C3'和C2''顺序
git branch -f master

git commit --amend эквивалентно перезаписи информации о последней ошибке фиксации, информация о последней фиксации не отображается в графическом интерфейсе gitk, а предыдущая информация не отображается в журнале git, а фиксация после добавления эквивалентно новому.Добавлено сообщение.

image.png

Еще один способ достичь этой цели. Cherry-Pick может быть использован в любом месте, которое может отправить дерево для записи фиксации, прилагаемое к тому, чтобы взять на себя характерную голову.

git checkout main
git cherry-pick newImage
git commit --amend
git cherry-pick caption

Используйте тег git, чтобы пометить запись.

image.png

git tag v0 c1
git tag v1 c2
git checkout c2

5. Передовые методы

Иногда требуется немного усилий, чтобы организовать ваши коммиты в удобном порядке. Это есть в некоторых командах, стремящихся к совершенству, но в общей команде такого броска нет.

Вот почему это называется продвинутыми навыками. Например, для преобразования следующей картинки нам нужно пройти несколько перебазировок.

image.png

git rebase main  bugFix
git rebase bugFix side
git rebase side another
git branch -f master another

Вы можете быстро переключаться между специальными символами, такими как ~ и ^, и они более привлекательны, когда каскадируются.

image.png

git branch bugWork HEAD~^2~

Например, чтобы завершить создание ветки выше, нам нужна только одна команда. Конечно, вы также можете использовать его напрямуюgit brach bugWork c2.

Давайте возьмем более сложный пример.

image.png

git checkout one
git cherry-pick c4 c3 c2
git checkout two
git cherry-pick c5 c4 c3 c2
git branch -f three c2

6. Удаленный склад

Команда clone — это самая простая команда для копирования удаленного репозитория. Чтобы достичь цели, показанной ниже, просто выполнитеgit cloneкоманда.

image.png

С помощью следующей команды вы можете увидеть статус разделения HEAD удаленного склада и локального склада.

git commit
git checkout o/master
git commit

image.png

На следующем рисунке показано действие команды выборки. git fetch не изменяет файлы на локальном диске, он просто синхронизирует удаленные данные, а затем перемещает указатель удаленной ветки. fetch — это просто действие загрузки. Например, преобразование следующей картинки.

image.png

git pull — это сокращение от git fetch и git merge. На рисунке ниже показан этот процесс.

image.png

git pull

Вот ответ на следующий уровень,fakeTeamworkЭто команда, созданная в этом руководстве.

git clone
git fakeTeamwork 2
git commit
git pull

Git push — тоже очень простая команда, поэтому я не буду ее снова представлять.

git commit
git commit 
git push

Следующие уровни будут становиться все сложнее и сложнее, а эффект от прямого просмотра скриншотов относительно слабый. Ответ прямо дан здесь, и вы действительно можете это сделать.

07. История отклоненных коммитов

image.png

git clone
git fakeTeamwork 1
git commit
git pull --rebase
git push

08. Заблокированный мастер

image.png

git reset --hard o/main
git checkout -b feature C2
git push origin feature

End

Итак, как получить адрес этого инструмента?

Методы, как показано ниже: Обратите внимание на публичный аккаунтxjjdog,Ответитьgit, вы можете получить фактический адрес онлайн-сверла. В то же время вы получите полный набор навыков работы с git.最优方案. (Удивительный гаджет)

С помощью этих инструментов вы можете сэкономить много времени, вы можете сэкономить несколько секунд и отправить мне тройку.

Набор систем с открытым исходным кодом для учебных целей, добро пожаловать в звезду:GitHub.com/star hotel о, хорошо/неплохо…. Он включает в себя сложный бизнес ToB, бизнес с высокой степенью параллелизма в Интернете, приложение кэширования, DDD, руководство по микросервисам. Управляемый моделью, управляемый данными. Поймите путь эволюции крупномасштабных сервисов, навыки кодирования, изучите Linux и настройте производительность. Помощь Docker/k8s, мониторинг, сбор логов, изучение промежуточного ПО. Front-end технология, back-end практика и т.д. Основная техника:SpringBoot+JPA+Mybatis-plus+Antd+Vue3.

Об авторе:Мисс сестра вкус(xjjdog), публичная учетная запись, которая не позволяет программистам идти в обход. Сосредоточьтесь на инфраструктуре и Linux. Десять лет архитектуры, десятки миллиардов ежедневного трафика, обсуждение с вами мира высокой параллелизма, дающие вам другой вкус. Мой личный WeChat xjjdog0, добро пожаловать в друзья для дальнейшего общения.​