Часто задаваемые вопросы о Git

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Как легко получить удаленную ветвь, скачаемую в локальный репозиторий?

Сначала убедитесь, что у вас настроен репозиторий origin . У вас должен быть такой репозиторий, если вы клонировали git clone) репозиторий. При проверка из ветви, которая не существует локально, Git определяет, есть ли удаленная ветвь с тем же именем. При наличии Git создает локальную ветвь со ссылкой на удаленную ветвь этого имени. Используется git pull для скачивания фиксаций и локального поиска Git в журнале филиалов.

Как узнать, в какой ветви я работаю?

git branchБез аргументов отображаются локальные ветви и выделены те, которые вы проверка. В Visual Studio строка состояния также отображает текущую ветвь при работе с проектом, хранящимся в локальном репозитории Git.

Когда нужно сделать фиксации Git?

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

Если каждая ветвь сохраняет свою полную историю фиксации, это не делает историю фиксации *main* трудно следовать с течением времени?

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

Как узнать, кто сделал определенное изменение в файл?

git blame Используйте команду, чтобы узнать, кто внес определенное изменение в файл. В локальном репозитории можно запустить git blame с параметром -L , указав интересующие строки. Blame создает форматированные выходные данные, показывающие фиксацию, которая в последний раз обновила строку и имя пользователя, который сделал фиксацию.

> git blame foo.js -L 20,+40  # show the blame output for the next 40 lines starting at line 20

215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 20) line 20 of the code
215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 21) line 21 of the code
215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 22) line 22 of the code

Blame выполняет поиск журнала фиксаций для вас. Вы также можете просмотреть журнал файла на веб-портале, чтобы определить, кто сделал изменение и когда. Откройте Обозреватель кода для репозитория и ветви, а затем выберите нужный файл. Azure Repos отображает полный журнал фиксаций для этого файла в текущей ветви.

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

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

Я сделал некоторую работу, но нужно переключиться на что-то другое. Как сохранить работу позже без фиксации изменений?

Иногда вы хотите сохранить изменения, но не зафиксировать их, потому что они не в точке, где вы комфортно делаете это. Используйте Git stash. Stash принимает текущие промежуточные и незамеченные изменения в ветви и сохраняет работу, а затем возвращает ветвь обратно в состояние последней фиксации. Вы можете изменить другую ветвь, выполнить свою работу, а затем при возвращении в эту ветвь выполнить stash apply восстановление изменений.

> git stash
Saved working directory and index state WIP on feature1: be26067 updated endpoint docs
HEAD is now at be26067

При выполнении git stash applyпоследние изменения будут применены к текущей ветви. Если возникает конфликт, применяющий защищенные изменения, stash восстановит изменения файлов, которые не конфликтуют и создают маркеры конфликтов в файлах, которые выполняют конфликт. В этом случае изменения следует объединить вручную.

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

Вы можете иметь несколько тахи, но для этого требуется больше ручной манипуляции, так как необходимо явно применить и удалить таймы. Дополнительные сведения см. в документации по Git Stash.

Как изменить редактор по умолчанию для средств командной строки Git?

По умолчанию командная строка Git будет использовать редактор командной строки при запросе сообщений о фиксации, выполнении перебазирования и других работах, требующих выполнения дополнительных сведений. Редактор по умолчанию настроен с помощью git config:

> git config core.editor _path_to_editor_ _options_to_editor_

Git For Windows упрощает настройку блокнота в качестве редактора:

> git config core.editor notepad

Эта команда настраивает Windows Блокнот для редактирования сведений Git по мере необходимости и правильной передачи текста из Git в Блокнот. Можно также указать

> git config format.commitMessageColumns 72 

Чтобы сохранить текстовые столбцы в сообщениях фиксации, предпочтительный 72 и оболочку строки после нажатия этого ограничения символа в строке.

Как изменить имя пользователя и сообщение электронной почты, отображаемые в моих фиксациях?

Git помещает имя пользователя и адреса электронной почты в каждую фиксацию, а Azure Repos использует эти сведения при просмотре фиксаций и при работе с запросами на вытягивание. Если вы работаете в командной строке, вы можете обновить имя и сведения электронной почты, отображаемые git config с помощью команды:

> git config --global user.email "frank@fabrikam.com"
> git config --global user.name "Francis Totten"

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

Вы также можете изменить имя и параметры электронной почты из Visual Studio. В меню Git выберите Параметры В диалоговом окне "Параметры" выберите глобальный Параметры Git или репозиторий Git Параметры> General.

Visual Studio 2019 версии 16.8 и более поздних версий предоставляет интерфейс управления версиями Git, сохраняя пользовательский интерфейс Team Обозреватель Git. Чтобы использовать командную Обозреватель, un проверка Tools>Options>Preview Features>New Git user experience from the menu bar. Вы можете выполнять функции Git из любого интерфейса взаимозаменяемо.

В команде Обозреватель выберите Параметры и в разделе Git щелкните ссылку глобального Параметры или репозитория Параметры.