Git для начинающих. урок 3.git status и git diff

Введение¶

Git (произн. «гит») — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux. На сегодняшний день поддерживается Джунио Хамано.

Система спроектирована как набор программ, специально разработанных с учётом их использования в скриптах. Это позволяет удобно создавать специализированные системы контроля версий на базе Git или пользовательские интерфейсы. Например, Cogito является именно таким примером фронтенда к репозиториям Git, а StGit использует Git для управления коллекцией патчей.

Git поддерживает быстрое разделение и слияние версий, включает инструменты для визуализации и навигации по нелинейной истории разработки. Как и Darcs, BitKeeper, Mercurial, SVK, Bazaar и Monotone, Git предоставляет каждому разработчику локальную копию всей истории разработки; изменения копируются из одного репозитория в другой.

Удалённый доступ к репозиториям Git обеспечивается git-daemon, gitosis, SSH- или HTTP-сервером. TCP-сервис git-daemon входит в дистрибутив Git и является наряду с SSH наиболее распространённым и надёжным методом доступа. Метод доступа по HTTP, несмотря на ряд ограничений, очень популярен в контролируемых сетях, потому что позволяет использовать существующие конфигурации сетевых фильтров.

История

Точка (период или полная остановка) в качестве разделителя расширения имени файла, а также ограничение на три буквы расширение, появилась в 1970 — х годах. Они могли исходить из 16-битных ограничений кодировки символов RAD50 .

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

В 1985 году RFC 959 официально определил имя пути как строку символов, которая должна быть введена в файловую систему пользователем для идентификации файла.

Примерно в 1995 году VFAT , расширение файловой системы MS-DOS FAT, было представлено в Windows 95 и Windows NT . Это позволило использовать длинные имена файлов Unicode (LFN) в смешанном регистре в дополнение к классическим именам «8.3».

Первым делом – безопасность

К

ак уже сказано, реестр у винды один – неповторимый, как отпечаток пальца. Да, в нем есть стандартные разделы, но некоторые из них содержат уникальные параметры, которые могут использоваться только на конкретном компьютере. Это я к тому, что

перед любым вмешательством в столь деликатную структуру не ленитесь создавать резервные копии

, а не надейтесь в случае чего скопировать данные с другой машины.

Почему это лучше, чем создавать точку восстановления системы? Да потому, что некоторые «ускорялки» и «чистилки» (потенциальные виновники сбоев) иногда вместе с мусором вычищают и точки.

Как переключаться между коммитами в PhpStrom

Вкладка Log, правый клик на нужном коммите и Checkout Revision. Все. История коммитов будет видна по-прежнему вся, но напротив текущего коммита будет стоять значок HEAD с символом «!»

Как вернуться обратно? В правом нижем угле PhpStorm есть пункт git:, кликаем на него, выбираем Local Branches — master — checkout. Значок «!» пропадет — мы вернулись в исходное состояние

Что могу посоветовать

как и git diff, историю коммитов git log удобнее смотреть в PhpStorm
в команде git log есть множество вариантов сортировки и фильтрации
сочетание git log с простыми линуксовыми командами дает хороший эффект. Обычный grep — очень хороший помощник
PhpStorm предоставляет удобные возможности по фильтрации коммитов

Можно искать коммиты по commit message, по автору, дате и по папкам, в которых происходили изменения
перемещайтесь по истории осторожно, не забывайте возвращаться в исходное состояние

На этом все. В следующем уроке мы поговорим о взаимодействии с сервером и познакомимся с командами git push и git pull.

Спасибо за внимание и до встречи!

Следующий урок ⇨
Урок 6. Работа с сервером, git push и git pull

⇦ Предыдущий урок
Урок 4. Первые коммиты и работа с файлами

Пользователи SourceTree

Если вы используете SourceTree для визуализации своего репозитория (это бесплатно и очень хорошо), вы можете щелкнуть файл правой кнопкой мыши и выбратьLog Selected

Дисплей (ниже) более удобный, чем gitk, большинство других перечисленных опций. К сожалению (в настоящее время) нет простого способа запустить это представление из командной строки — интерфейс командной строки SourceTree в настоящее время открывает только репозитории.

# 11 этаж

Если вы используете графический интерфейс git (в Windows) в меню «Репозиторий», вы можете использовать «Визуализировать историю мастера». Выделите отправку в верхней панели и файл в правом нижнем углу, и вы увидите разницу в отправке в левом нижнем углу.

# 12 этаж

ты можешь использовать это

Пусть git генерирует патч для каждой записи журнала.

Увидеть

Для большего количества вариантов — он действительно может сделать много хороших вещей :) Чтобы понять разницу в конкретном коммите, вы можете

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

Просматривайте изменения визуально.

# 13 этаж

при этих обстоятельствах,Также эквивалентен 。

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

# 14 этаж

Если вы используете TortoiseGit, вы сможете щелкнуть файл правой кнопкой мыши и выполнить . Во всплывающем окне убедитесь, что:

  • Не выбрано » «Вариант.

  • Проверьте » «Вариант.

# 15 этаж

Вы также можете попробовать использовать его для перечисления коммитов, которые изменили определенную часть файла (реализовано в Git 1.8.4).

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

Где upperLimit — это start_line_number, lowerLimit — это конечный_line_number файла.

Для дополнительной информации, пожалуйстадоступhttps://www.techpurohit.com/list-some-useful-git-commands

# 16 этаж

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

В твоем случае,Возможно, это то, что вы ищете.

# 17 этаж

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

Или, если вы хотите использовать мощный графический интерфейс пользователя:

Либо:

Если вы используетеgitx

# 19 этаж

SmartGit :

  1. Включить отображение неизмененных файлов в меню: просмотр / отображение неизмененных файлов
  2. Щелкните правой кнопкой мыши файл и выберите «Журнал» или нажмите «Ctrl-L».

# 20 этаж

Это покажет файлвесьИстория (включая записи истории, кроме переименования и разницы между каждым изменением).

Другими словами, если имяФайл был назван , Затем (БезOption) будет отображать только историю файла до тех пор, пока он не будет переименован — он не будет отображать историю файла при его вызове . использоватьБудет отображена вся история файла, включая файл с именемНикаких изменений во времени.Эта опция гарантирует, что каждое изменение включает разницу.

# 21 этаж

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

Работа с реестром из командной строки

Синтаксис бат-файлов и процесс их создания описан в статье, приведённой выше, в данной же публикации затронем исключительно тему, касающуюся выполнения функции изменения реестра из командной строки.Сразу отметим, что в bat-файлах не требуется заголовок в начале файла по типу того, что используется в reg-файлах: Windows Registry Editor Version 5.00 – здесь можно начинать писать команду с первой же строки.

Для начала приведём основные параметры, используемые при работе с реестром из командной строки:

  • /v – имя добавляемого/изменяемого ключа;
  • /ve – добавление пустого параметра;
  • /t – параметр для указания типа добавляемых/изменяемых данных;
  • /d – значение, присваиваемое параметру;
  • /s – применение команды ко всем вложенным ключам;
  • /f – отключение системных предупреждений при выполнении операции.

Но, конечно, основа любого батника Windows – сама команда. Итак, приведём список команд, используемых для редактирования реестра.

reg add – команда для добавления данных, будь то параметры, ключи или целые ветки.Допустим, после вирусной атаки нам необходимо вернуть место хранения hosts файла (а также файлов lmhosts, networks и protocols) в директорию %SystemRoot%System32driversetc Для этого нужно выполнить команду:

reg add HKLMSYSTEMCurrentControlSetServicesTcpipParameters /v DataBasePath /t REG_EXPAND_SZ /d %%SystemRoot%%System32driversetc /f

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

Registry backup

– простая в применении, бесплатная утилитка, не требующая установки на компьютер (но при желании можно и установить) позволяет создавать бэкапы как всего, так и отдельных кустов (основных разделов) и ветвей реестра. Использует в работе службу теневого копирования тома Windows. Сохраняет данные всех пользователей ПК, а не только текущего.

Для создания резервной копии запустите утилиту с правами админа, откройте вкладку «Backup Registry», отметьте нужные строки и нажмите «Backup Now».

Для восстановления реестра из копии зайдите на вкладку «Restore Registry», выберите из списка архив за нужное число и нажмите «Restore Now».

1 ответ

Лучший ответ

TL; DR

Учитывая, что вы знаете хэш фиксации , вы, вероятно, захотите:

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

Долго

Есть несколько способов сделать это в зависимости от различных деталей того, что вы хотите для вывода. Главное — начать с предсказуемой команды сантехники . В Git команда сантехники предназначена для использования какой-либо другой программой, поэтому она имеет машиночитаемый, предсказуемый и надежный формат вывода. Теперь вы получаете результат , а — команду porcelain , предназначенную для удобочитаемого вывода:

Который запускается в конце других своих операций.

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

Сразу видно, что здесь есть недоработка: переименования мы не наблюдали. Это потому, что между (первым и единственным) родителем коммита () и самим коммитом не было фактического переименования. Два снимка содержат всего два набора файлов. Переименование, которое мы видим, является догадкой , которую делает . Чтобы Git делал такое же предположение при использовании , мы должны добавить — который позволяет нам выбирать порог схожести, который считается переименованием, но по умолчанию равен 50 %, что мы получаем для сводки:

Эта строка содержит то, что мы хотим: обнаруженное переименование, значение схожести (в данном случае 95%) и оба имени файла, в данном случае разделенные табуляцией.

Мы можем использовать , чтобы сжать вывод, чтобы включить только переименования:

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

Добавление указывает ему не включать идентификатор хэша

Однако теперь на выходе мы получаем полный идентификатор хэша. Добавление указывает ему не включать идентификатор хэша.

Это также работает иначе , если указанная нами фиксация является фиксацией слияния

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

Удаление дает нам другой формат, более длинный и иногда более полезный:

Здесь мы получаем хэши больших двоичных объектов двух файлов с двумя режимами () перед ними, все с префиксом одного двоеточия . Детали изменились бы, если бы мы получили вывод для фиксации слияния.

Во всех этих случаях вы можете добавить опцию . Это изменяет вывод, делая его еще более машиночитаемым (но очень нечитаемым человеком): различные части каждой выходной записи имеют байты ASCII NUL (0x00), чтобы разделить их. Этот параметр также , а также некоторые подробности того, какие изменения вносятся в имена путей, когда вы не используете .

3

torek
23 Апр 2019 в 15:51

Уникальность

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

Подход уникальности может отличаться как от чувствительности к регистру, так и от формы нормализации Unicode, такой как NFC, NFD. Это означает, что могут быть созданы два отдельных файла с одним и тем же текстовым именем файла и разной байтовой реализацией имени файла, например L «\ x00C0.txt» (UTF-16, NFC) (латинская заглавная A с могилой) и L «\ x0041 \ x0300.txt «(UTF-16, NFD) (латинская заглавная A, объединение могил).

Количество имен в файле

Unix-подобные файловые системы позволяют файлу иметь более одного имени; в традиционных файловых системах в стиле Unix имена являются жесткими ссылками на индексный дескриптор файла или его эквивалент. Windows поддерживает жесткие ссылки в файловых системах NTFS и предоставляет команды для их создания в Windows XP и более поздних версиях. Жесткие ссылки отличаются от ярлыков Windows , классических псевдонимов Mac OS / macOS или символических ссылок . Введение LFN с VFAT позволило использовать псевдонимы файлов. Например, в псевдониме имени файла было максимум восемь плюс три символа, чтобы соответствовать ограничениям 8.3 для старых программ.

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

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

Что такое git? Основные понятия

Git (произн. «гит») — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux.

Системы управления версиями (Version Control Systems) – это программное обеспечение, призванное автоматизировать работу с историей файла (или группы файлов), обеспечить мониторинг изменений, синхронизацию данных и организовать защищенное хранилище проекта. Короче говоря, основная задача систем управления версиями – упростить работу с изменяющейся информацией.

Распределённые системы управления версиями – это СУВ, главной парадигмой которых является локализация данных каждого разработчика проекта. Иными словами, если в централизованных СУВ все действия, так или иначе, зависят от центрального объекта (сервер), то в распределенных СУВ каждый разработчик хранит собственную ветвь версий всего проекта. Удобство такой системы в том, что каждый разработчик имеет возможность вести работу независимо, время от времени обмениваясь промежуточными вариантами файлов с другими участниками проекта.

Рассмотрим пример:
У каждого разработчика на машине есть свой локальный репозиторий – место хранения версий файлов. Работа с данными проекта реализуется над вашим локальным репозиторием, и для этого необязательно поддерживать связь с остальными (пусть даже и главными) ветвями разработки. Связь с другими репозиториями понадобится лишь при изменении/чтении версий файлов других ветвей. При этом каждый участник проекта задает права собственного хранилища на чтение и запись. Таким образом, все ветви в распределенных СУВ равны между собой, и главную из них выделяет координатор. Отличие главной ветви лишь в том, что на неё мысленно будут равняться разработчики.

Запись изменений в репозиторий (commit)

Допустим, у вас имеется репозиторий Git и рабочая копия файлов для некоторого проекта. Вам нужно делать некоторые изменения и фиксировать состояния этих изменений (commit) в вашем репозитории каждый раз, когда проект достигает состояния, которое вам хотелось бы сохранить.
Запомните, каждый файл в вашем рабочем каталоге может находиться в одном из двух состояний: под версионным контролем (отслеживаемые) и нет (не отслеживаемые). Отслеживаемые файлы — это те файлы, которые были в последнем слепке состояния проекта; они могут быть не измененными, измененными или подготовленными к коммиту (staged). Все изменения в них, будут отслеживаться. Не отслеживаемые файлы — это всё остальное, любые файлы в вашем рабочем каталоге, которые не входили в ваш последний слепок состояния и не подготовлены к коммиту. Когда вы впервые клонируете репозиторий, все файлы будут отслеживаемые и не измененные, потому что вы только взяли их из хранилища и ничего пока не редактировали.
Как только вы отредактируете файлы, Git будет рассматривать их как измененные, т.к. вы изменили их с момента последнего коммита. Вы индексируете (stage) эти изменения и затем фиксируете (делаете коммит) все индексированные изменения.

Что такое ветка?

Ветка (или «branch») — это своеобразное «место» разработки. Например, после клонирования репозитория мы по-умолчанию находимся в ветке master, создаём ветку test (в которую будет всё слито из master), затем делаем в ней какие-то изменения, делаем коммит, а потом переключиться обратно в ветку master. С помощью команды

$ git log

в каждой из веток, можно будет посмотреть все коммиты. В ветке master вы увидите, что ваш коммит из test на ветку не распространяется, и те файлы, которые вы изменили в ветке test будут возвращены к состоянию последнего коммита в ветке master. Таким образом ветка — это что-то вроде текущего состояния вашей разработки.

Расширения имени файла

Многие файловые системы, включая системы FAT , NTFS и VMS , рассматривают как расширение имени файла часть имени файла, которая состоит из одного или нескольких символов, следующих за последней точкой в ​​имени файла, разделяя имя файла на две части: базовое имя или основу а также расширение или суффикс, используемый некоторыми приложениями для обозначения типа файла . Несколько выходных файлов, созданных приложением, используют одно и то же базовое имя и разные расширения. Например, компилятор может использовать расширение для исходного входного файла (для кода Fortran), для вывода объекта и для листинга. Хотя есть несколько распространенных расширений, они произвольны, и другое приложение может использовать и . Расширения были ограничены, по крайней мере исторически в некоторых системах, длиной до 3 символов, но в целом могут иметь любую длину, например .

Все уроки курса

  • Вводный урок
  • 1. Установка и базовая настройка git
  • 2. Создание и клонирование репозитория git
  • 3. Делаем первые изменения, git status и git diff
  • 4. Коммиты и история коммитов, git commit, git log и git show
  • 5. Подробнее об истории коммитов. Путешествие по истории
  • 6. Работа с сервером, git push и git pull
  • 7. Ветки — главная фишка git, git branch и git checkout
  • 8. Работа с ветками на сервере, git fetch
  • 9. Слияния или мерджи веток, git merge
  • 10. Конфликты и их разрешение
  • Платная часть курса. Презентация
  • * 11. Работа с gitignore и git exclude
  • * 12. Буфер обмена git, git stash
  • * 13. Копирование коммитов, git cherry-pick
  • * 14. Отмена и редактирование последнего коммита
  • * 15. Отмена произвольного коммита, git revert
  •    16. Склеивание коммитов, git rebase —interactive и git reflog
  • * 17. Зачем склеивать коммиты. Плюсы и минусы сквоша
  • * 18. Работа с git rebase. Отличия от merge
  • * 19. Что такое git push —force и как с ним работать
  • * 20. Ищем баги с помощью git, git bisect
  • * 21. Как и зачем работать с тегами git
  • * 22. Процессы: github flow и git flow
  • * 23. Псевдонимы в git
  •    24. Мердж-реквесты
  • * 25. Форки

* платные уроки

список обновляется…

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

В

спорах о том, стоит ли пользователю что-то править в системном реестре самому, сломалось немало копий. Основной аргумент «против» звучит примерно так: неопытные виндоюзеры часто не понимают, что они делают и зачем. И вместо ускорения системы или удаления «

» получают на экране «черный квадрат Малевича», создавая тем самым проблемы себе и другим.

Однако аргументы «за» тоже имеют право на жизнь. Убедительнее всех звучат следующие:

  • Редактируя реестр своими руками, пользователь приобретает опыт и знания, а ошибки поправимы.
  • Иногда решить какую-либо проблему другими способами невозможно или ручное редактирование – самый короткий путь к ее решению.

Словом, во всем есть плюсы и минусы, но я бы сказал так: если ваши личные доводы «за» перевесили и вы осознаете возможные последствия – дерзайте. Но пока не наберетесь опыта, желательно, чтобы с вами рядом был человек, который в случае чего поможет исправить ошибку.

Изменения в PhpStorm

В онке Version Control мы сразу видим список измененных файлов. Чтобы посмотреть изменения в конкретном файле, нужно кликнуть на него и нажать Crtl+D (diff).
В окне difference видны не только добавленные и удаленные строки, но и изменения в отдельных строках.

Плюсы PhpStorm

  • список измененных файлов можно держать открытым, не обязательно набирать git status
  • измененные строки видны сразу же в редакторе кода
  • просмотр изменений визуально нагляднее, чем в терминале (показываются даже изменения в отдельных строках)
  • проще откатить отдельные изменения

PhpStorm отлично интегрируется с git. Конечно, не он один.
Некоторые продвинутые редакторы кода тоже могут работать с git.
Вы можете посмотреть, как реализована поддержка git, например, в sublime, но это далеко не так удобно, как в IDE от JetBrains.
Это не реклама, а просто совет использовать удобные инструменты.

PhpStorm платная программа (9 $/месяц на январь 2020 года), но это затраты, которые окупятся. Рекомендую.

Поддержка git в Sublime Text 3

В Sublime Text 3 ситуация несколько изменилась — поддержка git улучшилась.
Подробнее рассмотрим работу с git в sublime во второй части курса

На этом все. В конспекте информации мало, только основные команды, поэтому смотрите видеоурок. Там все нагляднее и понятнее.

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

Спасибо за внимание и до встречи!

Следующий урок ⇨
Урок 4. Коммиты и история коммитов

⇦ Предыдущий урок
Урок 2. Создание и клонирование репозитория

Reg-файл

R

eg-файл – файл с расширением reg, это особый текстовый объект, в котором находятся данные реестра и команды на их изменение. Как вы помните, именно в этом формате мы сохраняли резервные копии.

Рег-файлы читает и обрабатывает редактор RegEdit, но не сам, а по команде пользователя – щелчку по файлу. После этого сведения, которые там содержатся, заносятся в реестр.

С помощью единственного reg-файла можно внести изменения как в один, так и во множество разделов реестра, причем разных. Он позволяет:

  • Создавать новые разделы и параметры с заданными именами.
  • Присваивать параметрам значения и изменять их.
  • Удалять существующие разделы и параметры.

То есть всё то, что можно делать вручную, но быстрее.

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

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

Итак, откроем блокнот и создадим в нем новый документ. В каждом файле reg обязательно присутствует заголовок: Windows Registry Editor Version 5.00 Напишем его вверху листа и оставим после пустую строку. Следом идут команды.

Синтаксис типичного рег-файла показан на скриншоте ниже.

В квадратных скобках [] записывают разделы – иными словами, папки и подпапки дерева каталогов. Такая команда добавляет в реестр новый раздел.

Удаление файлов из git репозитория и из stage

Удаление файла из stage

Вначале разберемся со stage. Создадим ещё один файл.

> touch main.c

“Отправим” файл main.c в stage.

> git add main.c

Внесем изменения в README.md.

> echo "# README" > README.md

Информацию об этом также отправим в stage.

> git add README.md

Посмотрим на состояние stage.

> git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   README.md
        new file:   main.c

Если нам необходимо убрать из stage, какой-то из этих файлов (main.c или README.md), то для этого можно воспользоваться командой git –rm cashed <filename>, сделаем это для файла main.c.

> git rm --cached main.c
rm 'main.c'

Теперь посмотрим на состояние рабочей директории и stage.

> git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        main.c

Видно, что изменения в файле README.md готовы для коммита, а вот файл main.c перешел в состояние – неотслеживаемый. Отправим main.c в stage и, после этого, сделаем коммит в репозиторий.

> git add main.c
> git commit -m "add main.c and do some changes in README.md"
 add main.c and do some changes in README.md
 2 files changed, 1 insertion(+)
 create mode 100644 main.c

Удаление файлов из git репозитория

Удалить файл из репозитория можно двумя способами: первый – удалить его из рабочей директории и уведомить об этом git; второй – воспользоваться средствами git. Начнем с первого способа. Для начала посмотрим, какие файлы у нас хранятся в репозитории.

> git ls-tree master
100644 blob 7e59600739c96546163833214c36459e324bad0a    README.md
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391    main.c

Удалим файл main.c из рабочей директории.

> rm main.c
> ls
README.md

Уведомим об этом систему git.

> git rm main.c
rm 'main.c'

Вместо команды git rm можно использовать git add, но само слово add в данном случае будет звучать несколько неоднозначно, поэтому лучше использовать rm. На данном этапе еще можно вернуть все назад с помощью команды git checkout — <filename>, в результате, в нашу рабочую директорию будет скопирован файл из репозитория. Создадим коммит, фиксирующий удаление файла.

> git commit -m "remove main.c"
 remove main.c
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 main.c

Теперь в репозитории остался только один файл README.md.

> git ls-tree master
100644 blob 7e59600739c96546163833214c36459e324bad0a    README.md

Второй способ – это сразу использовать команду git rm без предварительного удаления файла из директории. Вновь создадим файл main.c и добавим его в репозиторий.

> touch main.c
> git add main.c
> git commit -m "add main.c file"
 add main.c file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 main.c
> git ls-tree master
100644 blob 7e59600739c96546163833214c36459e324bad0a    README.md
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391    main.c

Удалим файл из репозитория.

> git rm main.c
rm 'main.c'

> git commit -m "deleted: main.c file"
 deleted: main.c file
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 main.c

Файла main.c больше нет в репозитории.

> git ls-tree master
100644 blob 7e59600739c96546163833214c36459e324bad0a    README.md

Его также нет и в рабочем каталоге.

> ls
README.md

Удалите файл README.md из репозитория самостоятельно.

Глобальный .gitignore

Git также позволяет вам создать глобальный файл , в котором вы можете определить правила игнорирования для каждого Git-репозитория вашей локальной системы.

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

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

1. Создайте файл:

2. Добавьте этот файл в Git-конфигурацию:

3. Откройте файл в текстовом редакторе и добавьте в него свои правила.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: