Оригинал: Miss Sister Taste (идентификатор публичной учетной записи WeChat: xjjdog), добро пожаловать, пожалуйста, сохраните источник для перепечатки.
Несколько дней назад кто-то в компании проводил git-тренинг, и лекция была настолько скучной, что аудитория уснула. Это не может не напомнить мне об очень хорошем визуальном инструменте обучения git. С помощью этого инструмента git-тренеров в компании можно уволить.
В этой статье этот инструмент будет подробно представлен, а адрес инструмента будет указан в конце статьи.
Git уже является обязательным навыком для программистов, но у него есть барьеры. Во многих случаях только овладение такими командами, как pull, push и commit, не может решить проблему, особенно при наличии конфликта.
Согласно введенной вами команде 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
На рисунке ниже показана инструкция, которая выполняет новую ветвь. Указав параметр b, ветвь может быть создана автоматически, когда она не существует.
git checkout -b bugFix
Ниже создается новая ветка bugFix.После отправки кода в main и bugFix соответственно, исправление сливается с main с помощью команды merge.
git checkout -b bugFix
git commit
git checkout master
git commit
git merge bugFix
Rebase сделает код более понятным. На следующем рисунке показано использование команды rebase.
git checkout -b bugFix
git commit
git checkout main
git commit
git checkout bugFix
git rebase main
2. ГОЛОВА двигаться
HEAD всегда указывает на самую последнюю фиксацию в текущей ветке. Большинство команд Git, изменяющих дерево коммитов, начинают с изменения того, на что указывает HEAD.
Очень удобно перемещаться вверх и вниз по HEAD.
На следующем рисунке показано, что HEAD можно указать непосредственно через хеш-значение. С помощью Checkout вы можете перейти к любому коммиту в любое время.
git checkout c4
пройти через^
,~
и другие специальные символы для совершения относительных прыжков. Больше не нужно искать это очень длинное хеш-значение. Поговорите с картинкой.
git checkout bugFix
git checkout HEAD^
Конечно, вы можете упростить прямо до
git checkout bugFix^
Разве это не просто?
такой же,~
Этот символ может сопровождаться цифровым, для достижения четных хоп. Мы смотрим на его эффект.
git branch -f bugFix HEAD~2
git branch -f main c6
git checkout HEAD^
И сброс, и возврат используются для отката фиксации. Но, условно говоря, сброс предназначен для локального, а возврат - для удаленного.
git reset c1
git checkout pushed
git revert c2
Вышеуказанные функции охватывают 90% операций git. Однако, если вы не можете играть в остальные 10%, в некоторых случаях это может сильно раздражать.
3. cherry-pick
Cherry-pick — самый простой способ, если вы хотите скопировать некоторые коммиты в текущем местоположении (HEAD). Лично мне очень нравится выбор вишни, потому что это очень просто.
Он отличается от git rebase тем, что вы можете выбрать только некоторые коммиты и получить их.
git cherry-pick c3 c4 c7
В качестве альтернативы мы также можем использовать интерактивную перебазировку. Например,git rebase -i HEAD~n
Откроется диалоговое окно для настройки, которое здесь повторяться не будет.
Интерактивная перебазировка относится к использованию команды перебазирования с параметром --interactive, сокращенно -i.
4. Несколько хитростей
Изучив вышеизложенное, можно сказать, что вы должны хорошо выполнять свою работу. Вот несколько часто используемых техник.
Чтобы завершить преобразование приведенного выше рисунка, просто переключитесь на основную ветку и выполните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, а фиксация после добавления эквивалентно новому.Добавлено сообщение.
Еще один способ достичь этой цели. Cherry-Pick может быть использован в любом месте, которое может отправить дерево для записи фиксации, прилагаемое к тому, чтобы взять на себя характерную голову.
git checkout main
git cherry-pick newImage
git commit --amend
git cherry-pick caption
Используйте тег git, чтобы пометить запись.
git tag v0 c1
git tag v1 c2
git checkout c2
5. Передовые методы
Иногда требуется немного усилий, чтобы организовать ваши коммиты в удобном порядке. Это есть в некоторых командах, стремящихся к совершенству, но в общей команде такого броска нет.
Вот почему это называется продвинутыми навыками. Например, для преобразования следующей картинки нам нужно пройти несколько перебазировок.
git rebase main bugFix
git rebase bugFix side
git rebase side another
git branch -f master another
Вы можете быстро переключаться между специальными символами, такими как ~ и ^, и они более привлекательны, когда каскадируются.
git branch bugWork HEAD~^2~
Например, чтобы завершить создание ветки выше, нам нужна только одна команда. Конечно, вы также можете использовать его напрямуюgit brach bugWork c2
.
Давайте возьмем более сложный пример.
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
команда.
С помощью следующей команды вы можете увидеть статус разделения HEAD удаленного склада и локального склада.
git commit
git checkout o/master
git commit
На следующем рисунке показано действие команды выборки. git fetch не изменяет файлы на локальном диске, он просто синхронизирует удаленные данные, а затем перемещает указатель удаленной ветки. fetch — это просто действие загрузки. Например, преобразование следующей картинки.
git pull — это сокращение от git fetch и git merge. На рисунке ниже показан этот процесс.
git pull
Вот ответ на следующий уровень,fakeTeamwork
Это команда, созданная в этом руководстве.
git clone
git fakeTeamwork 2
git commit
git pull
Git push — тоже очень простая команда, поэтому я не буду ее снова представлять.
git commit
git commit
git push
Следующие уровни будут становиться все сложнее и сложнее, а эффект от прямого просмотра скриншотов относительно слабый. Ответ прямо дан здесь, и вы действительно можете это сделать.
07. История отклоненных коммитов
git clone
git fakeTeamwork 1
git commit
git pull --rebase
git push
08. Заблокированный мастер
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, добро пожаловать в друзья для дальнейшего общения.