Вы уверены, что можете запомнить столько команд git? Попробуйте SourceTree

Архитектура Git исходный код
Вы уверены, что можете запомнить столько команд git? Попробуйте SourceTree

предисловие

Поскольку я использую Sourcetree более 3 лет, я знаком со всеми функциями git и гибко использую git для решения различных сценариев в разработке, а также много раз делился опытом использования Sourcetree между различными группами внутри компании. мне поделиться этим инструментом с вами.

Эта статья может быть наиболее полной статьей о визуальном использовании инструментов git в Интернете.

Может быть, для многих разработчиков достаточно понять, как git толкает, тянет и разрешает некоторые простые конфликтные команды.На самом деле функции git очень мощные, и запомнить каждую логику, запоминая команды, сложно.
Конечно, разные среды разработки IDE имеют разные git-плагины, и способы работы разные, лучше сразу изучить кроссплатформенный инструмент управления git Sourcetree, не ограниченный IDE. Используете ли вы Java, Python или Android, вы можете использовать его.

вводить

Официальное введение выглядит следующим образом:

A free Git client for Windows and Mac
Sourcetree simplifies how you interact with your Git repositories so you can focus on coding. Visualize and manage your repositories through Sourcetree's simple Git GUI.

Перевод:

Мощный бесплатный клиент Git для Windows и Mac.
sourcetree упрощает взаимодействие с вашим репозиторием Git, чтобы вы могли сосредоточиться на написании кода. Визуализируйте и управляйте своим репозиторием с помощью простого графического интерфейса git Sourcetree.

маленькая яма

скачатьwww.sourcetreeapp.com/
Это программное обеспечение является бесплатным, но требует регистрации и авторизации входа; нет проблем с двумя этапами входа и авторизации, но для регистрации вам необходимо зарегистрироваться в Интернете.

некоторые сцены

Возможно, я поделюсь с вами некоторыми высокоуровневыми сценариями применения git:

  1. Проект включает в себя ветку разработки, ветку интеграции, ветку интеграции (стабильная версия), ветку рабочей среды и т. д.
  2. Проект содержит базовые ветки, которые распределяются между каждой веткой в ​​соответствии с функцией, каждой веткой управления разработкой (около дюжины веток), интегрированной веткой и веткой производственной среды. (Десять или около того ветвей имеют только код своих собственных модулей)
  3. Продукт имеет одну основную ветку, и у каждой компании индивидуальные требования к реализации, а требования сложно реализовать в виде плагинов, либо форма плагина также требует различных персонализированных модификаций плагинов, то каждая реализация проекта соответствует каждой ветви.

Здесь я кратко опишу эти сценарии использования, а конкретный контент будет представлен шаг за шагом позже.
Наслаждайтесь веткой git:

Обычное использование

В этой статье мы поговорим о среде Windows и среде Mac вместе, но все же есть некоторые различия в интерфейсе или существительном между двумя платформами.Эта статья объяснит как можно больше.

Добавить репозиторий

Клонировать с URL-адреса под Mac

git remote add orgin http://10.10.100.6:3000/sl/shaolei.git

Клонировать с URL-адреса под окнами

Сканирование, получение информации о ветке

схватить(имя под маком)Получать(имя в Windows) относится к получению информации об изменениях в библиотеке git на стороне сервера, например, несколько версий позади, несколько версий впереди и проекты, с которыми мы обычно сотрудничаем со многими людьми, нам необходимо получить их перед отправкой кода , если на сервере есть новые отправки, а затем сбрасывать чужие изменения, что может уменьшить конфликты кода. (Строка меню)

вытащить код

$ git fetch
$ git merge orgin/master

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

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

Отправить код:

1. Отправьте как обычно

  1. Сначала выберите неустановленные файлы, а затем нажмите «Поместить выбранные» или просто нажмите «Поместить все». (файловая колонка)
  2. Введите описание этого изменения кода в текстовое поле ниже. (нижняя полоса)
  3. исходное дерево по умолчанию не будет отправлено в удаленный репозиторий, отметьте, чтобы немедленно отправить изменения в источник. (нижняя полоса)
  4. Нажмите «Отправить» (если вы не установите флажок, чтобы немедленно отправить изменения на удаленное устройство, вам нужно вручную нажатьСтрока менютолкать)


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


полоса изменениябудет содержать все эти изменения, в том числе+На этот раз представляет добавленную строку;-Представляет строку, которая будет удалена на этот раз; за первыми двумя номерами строк следует номер строки до изменения кода и номер строки после изменения.
Чтобы сохранить как можно меньше изменений в коде, нам нужно отказаться от некоторых бессмысленных изменений, таких как удаление строки из строки 153.<dt></dt>, после чего следует дополнительная строка<dt></dt>, это явление обычно вызвано форматированием кода или случайным добавлением некоторых пробелов и других невидимых символов, мы можем напрямую выбрать эти 2 строки, а затем щелкнуть строку удаления выше.

Следует отметить, что отбрасывание — это не то же самое, что удаление. То, что отбрасывается и теряется, — это изменение этой строки, например+знак, то его отбрасывание означает не добавление этой строки, знак минус-Аналогично утеряно не удалить эту строку, то есть восстановить эту строку.
sourcetree сгруппирует все изменения в блоки, поэтому, если изменения всего блока бессмысленны, весь блок можно сразу отбросить, как показано на рисунке:

Затем выбранные коммиты размещаются (файловая колонка)

промежуточный код

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


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

1. Разрешение конфликтов

Когда я и другие изменяем одну и ту же строку одного и того же файла (большинство из нас меняют файл, git поможет нам с этим справиться и автоматически объединить его, но при изменении одной и той же строки одного и того же файла он будет вытягиваться при вытягивании конфликт), как показано на рисунке


Мы можем начать с размещения нашего кодаместо храненияВстаньте(Строка меню), то тяните код, то применяйте заначку, а конфликтующие файлы будут отображаться после приложения

$ git stash


В это время нам нужно указать версию, например чужую версию, или мою версию, затем щелкнуть файл правой кнопкой мыши и выбрать Разрешить конфликт Использовать мою версию (в левой колонке выбрать Статус файла — «Рабочая копия»)


В столбце изменений вы можете видеть, что обновленный основной поток — это версия, измененная другими, +==== версия, которую я изменил ниже.
Если есть проблемы как удаленно, так и локально, рекомендуется открыть инструмент IDE для редактирования и отправки.

новая ветка

В проекте мы можем быть разделены на ветки разработки, ветки интеграции, ветки производственной среды и т. д. В настоящее время нам нужно только щелкнуть правой кнопкой мыши узел, чтобы выбратьфилиалПросто

толкать ветку

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

$ git push orgin 测试分支

переключить ветку

$ git checkout 3e1e7fc


Если вам нужно переключиться на другую ветку, дважды щелкните ее напрямую.

вытащить удаленную ветку

Как и при переключении ветвей, дважды щелкните удаленную ветвь.

фиксация отката

Бывают случаи, когда код, который мы отправляем, имеет проблемы и его необходимо откатить.

git revert *

откатить фиксацию

Щелкните правой кнопкой мыши изменение (узел в исходном дереве) и выберите откат для фиксации.

файл отката

линия отката

игнорировать файлы

В проекте есть некоторые папки, которые нужно игнорировать и не нужно отправлять в хранилище, например файлы в каталоге bin и целевом каталоге.


Это поддерживает игнорирование одного файла, игнорирование всех расширений или пропуск всего в папке и т. д. После этого мы не увидим эти изменения файла.
Следует отметить, что при игнорировании файлов могут быть проигнорированы только неотслеживаемые файлы.Если есть отслеживаемые файлы (которые были отправлены ранее), вам необходимо сначала удалить эти файлы, отправить кодовую базу и снова игнорировать файлы.

объединить ветвь


Как видно из рисунка, код нашей тестовой ветки находится на 2 узла позади основной ветки, мы можем щелкнуть правой кнопкой мыши на главной ветке и выбрать слить в текущую ветку


При возникновении конфликта необходимо разрешить конфликт, как описано выше, а затем отправить; если конфликта нет, необходимо вручную нажать кнопку, чтобы отправить объединенные изменения на удаленный сервер.

Хранение (временных) кодов

$ git stash

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

Просмотрите документы

Предположим, что файл был изменен разными разработчиками, и есть фрагмент кода, который должен найти человека, который его модифицировал, мы можем щелкнуть правой кнопкой мыши файл и проверить автора каждой строки.

$ git blame


Эффект следующий:


Щелкните строку правой кнопкой мыши и выберите «Просмотр подробного журнала», чтобы просмотреть описание фиксации.

Посмотреть историю изменений файла

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

$ git log


После нажатия эффект следующий:

Открыть исторические версии по файлам

Иногда нам также нужно просмотреть историческую версию файла, здесь вы можете выбрать узел, выбрать измененный файл, щелкнуть правой кнопкой мыши, чтобы открыть историческую версию


sourcetree создает временный файл (историческую версию) для нашего анализа.

Использование ярлыков

Иногда нам нужно добавить метку к изменению, напримерСтабильная версия 1.0Тег

git tag v1
$ git tag -d v1 //移除标签


Эффект следующий:

архив

Архивирование означает упаковку текущей версии в zip-архив.

кассовое отделение

Проверка ветки означает возврат текущего проекта к выбранной версии, чтобы мы могли легко вернуться к любой версии, чтобы скомпилировать проект или проверить наличие проблем с проектом на тот момент.

разное

  1. Слияние обычно используется между разными ветвями, чтобы объединить все изменения коммита в текущую ветвь.
  2. Перебазирование и интерактивное изменение — это все перебазирования, в основном для изменения логотипа в имени удаленной ветки, которое не используется в большинстве сценариев.
  3. Сброс к текущему узлу: Эта функция очень полезна, вы можете откатить текущую ветку к ветке на тот момент, а затем отобразить все изменения файла, что эквивалентно возврату к тому моменту, когда вы были готовы к отправке (включая все последующие изменения) ).
  4. Выбор единственного коммита из другой ветки и слияние его с вашей текущей веткой аналогичен исправлению, например, для исправления ошибки, которая есть во всех ветках.
$ git revert
$ git cherry-pick 4a1fd5

  1. Pull push for branch: тянуть с пульта
  2. Ветка отслеживания: когда она не отслеживается, это означает, что между локальной и удаленной ветвями нет связи.
  3. переименовать ветку
  4. удалить ветки и т.д.

Как просмотреть соответствующие команды в интерфейсе


После настройки вы можете увидеть команду git каждой операции

несколько хороших привычек

  1. Отбросьте как можно больше бессмысленных изменений
  2. Назначайте задачи разработчика по модулям, когда это возможно
  3. Конфликты нужно разрешать сразу после слияния веток
  4. Сокращение блоков изменений кода в одном файле
  5. Если вы используете мою версию для решения проблемы, вы должны сообщить другой стороне

Применение сценария

Количество мест ограничено, пожалуйста, продолжайте в следующий раз!

Суммировать

Благодаря введению этой статьи можно решить более 90% различных проблем с отправкой кода.Что касается того, какую среду IDE использовать, это не имеет значения.Просто используйте инструмент разработки IDE, чтобы открыть проект в исходном дереве.