Статьи

Руководство дизайнера по Git или: Как я научился перестать беспокоиться и любить репозиторий.

Набор инструментов дизайнера, кажется, постоянно расширяется. Давно прошли те времена, когда веб-дизайнер мог полагаться исключительно на редактор HTML и Photoshop. Теперь, особенно когда вы работаете в команде с разработчиками, вам нужно работать умнее и более совместно.

В этом посте я собираюсь обсудить использование Git.

Git — это программное обеспечение для контроля версий, изначально созданное Линусом Торвальдсом (создателем Linux). Его основная цель — отслеживать изменения в файлах, чтобы вы могли лучше управлять своей работой.

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

Потому что Git — это фантастика.

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

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

Метафора дерева

Большинство систем контроля версий (включая Git) используют концепцию дерева для описания хранилища. Репозиторий — это коллекция файлов и каталогов (ваш проект), а также список изменений этих файлов за время существования репозитория.

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

При работе с Git вам необходимо знать следующие термины:

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

Функциональные ветви — это ветви от основной ветви, и распространенный способ работы, когда вы запускаете новую функцию на своем веб-сайте. Когда функция завершена, вы можете безопасно объединить ее с главной веткой. Таким образом, управлять функциями, над которыми вы работаете, очень просто: вы можете иметь полный набор функций для проекта, который вы выполняете, и объединять в мастер только те функции, которые уже завершены и работают.

Начало репозитория

Чтобы начать использовать Git, вы должны установить его. Перейдите на http://git-scm.com/download, чтобы найти установщики для вашей операционной системы.

После установки создайте папку. Я назову тот, который я использую здесь sitepointexample:

  > mkdir sitepointexample
 > cd sitepointexample
 > git init
 Инициализированный пустой репозиторий Git в /Users/mark/sitepointexample/.git/ 

[Предостережение: я парень из Mac. Это означает, что командная строка немного отличается для пользователей Windows, но команды Git в основном одинаковы.]

git init Он вернет Initialized empty Git repository in /Users//sitepointexample/.git/

Местное отделение, Удаленное отделение

Довольно часто иметь удаленного мастера. Удаленный мастер — это копия репозитория (обычно на сервере, доступном для всех членов команды разработчиков), в который вы можете перемещать или извлекать изменения из / в.

Я не буду вдаваться в подробности; в Интернете есть много ресурсов, которые объяснят это более подробно.

Статус, Добавить, Подтвердить, Извлечь, Слить, Нажать

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

Положение дел

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

Как правило, git status

  1. Отслеживаемые изменения — это файлы, на которых запущен git add Эти файлы будут зафиксированы, если будет запущен git commit
  2. Не отслеживаемые изменения не запускали git add
  3. Файлы без отслеживания — это файлы, о которых Git ничего не знает. Это либо новые файлы, либо файлы, которые никогда не добавлялись в хранилище.

Ниже приведены три команды: git status Я создал (или коснулся) пустой файл с именем README; и я сделал еще один git status

  > git status
 # На ветке мастер
 #
 # Первоначальный коммит
 #
 нечего фиксировать (создавать / копировать файлы и использовать «git add» для отслеживания)
 > нажмите README
 > git status
 # На ветке мастер
 #
 # Первоначальный коммит
 #
 # Неотслеживаемые файлы:
 # (используйте «git add ...» для включения в то, что будет зафиксировано)
 #
 # ПРОЧТИ МЕНЯ
 ничего не добавлено для фиксации, но есть неотслеживаемые файлы (используйте «git add» для отслеживания) 

git status Делай это, прежде чем делать что-нибудь еще, каждый раз.

добавлять

git add <filename> Вы можете продолжить работу после добавления изменений в репозиторий, но будут зафиксированы только изменения до момента добавления. Вы всегда можете добавить изменения поверх добавленных изменений; ничего не потеряет, просто следите за изменениями. Запустив git addgit status

  > git добавить README
 > git status
 # На ветке мастер
 #
 # Первоначальный коммит
 #
 # Изменения должны быть совершены:
 # (используйте "git rm --cached ..." для удаления)
 #
 # новый файл: README
 # 

Итак, я добавил файл README, и другой git status

Если вы добавили изменения по ошибке, вы можете отменить изменения, запустив git reset HEAD <filename> Он не пропустит никаких изменений, которые вы сделали; это просто не передаст их.

совершить

git commit Коммит дает вам идентификатор фиксации, длинную строку символов (хеш MD5), которую репозиторий использует для именования момента времени, когда был сделан коммит. Вот что вы можете использовать в неудачном случае, когда вам нужно откатиться к предыдущему моменту времени:

  > git commit --message 'Мой первый коммит'
 [master (root-commit) d602d2b] Мой первый коммит
 0 файлов изменено, 0 вставок (+), 0 удалений (-)
 режим создания 100644 README 

Я зафиксировал изменения в файле с помощью --message 'My First Commit' Это полезные советы, которые вы можете написать, просматривая журнал коммитов в поисках внесенных вами изменений. Сделайте это как можно более наглядным. Они экономят много времени, когда что-то идет не так. Вы также можете использовать -m 'MESSAGE'--message 'MESSAGE'

Тянуть

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

  > мерзавец
 Пульт: Подсчет объектов: 118, сделано.
 дистанционное: сжатие объектов: 100% (75/75), сделано.
 удаленный: всего 78 (дельта 52), повторно используется 0 (дельта 0)
 Распаковка предметов: 100% (78/78), готово.
 От [email protected]: sitepoint / example
    36aeed8..8c18ec5 фирменное имя -> происхождение / фирменное имя
 Слияние сделано рекурсивным.
  ... / Resource / otherfile.php |  19 ++
  ... / Resource / file.php |  8 -
  2 файла изменены, 19 вставок (+), 8 удалений (-)
  режим создания 100755 /Resource/file.php 

Некоторые моменты здесь:

  1. Мы используем GitHub , компанию, которая размещает репозитории. У них отличная документация и помощь онлайн. Проверь их.
  2. Удаленная ветка является origin/branchname Обычно origin
  3. 36aeed8..8c18ec536aeed88c18ec5
  4. Два файла были разобраны, и один из них ( create mode 100755 /Resource/file.php Это было добавлено другим членом команды.

Объединить

git merge

Обычно у вас будут изменения в ветви функций, и когда вы будете довольны работой, вы объедините изменения в мастере:

  > ветка git другого примера
 > git checkout из другого примера
 Перешел на ветку "другой пример"
 > ветка мерзавца
   мастер
 * другой пример
 > нажмите ДРУГОЙ
 > git добавить ДРУГОЙ
 > git commit -m 'Другой файл добавлен'
 [otherexample 16283e5] Добавлен другой файл
  0 файлов изменено, 0 вставок (+), 0 удалений (-)
  режим создания 100644 ДРУГОЙ
 > мастер кассовых сборов
 Перешел на ветку "мастер"
 > git status
 # На ветке мастер
 нечего коммитить (рабочий каталог чистый)
 > git merge из другого примера
 Обновление d602d2b..16283e5
 Перемотка вперед
  0 файлов изменено, 0 вставок (+), 0 удалений (-)
  режим создания 100644 ДРУГОЙ 

Вот что я сделал:

  1. git branch otherexampleotherexample
  2. git checkout otherexample
  3. git branch Это говорит мне, что у меня есть две ветви, masterotherexample [FYI: git branch -rorigin
  4. touch OTHERFILEgit add OTHERFILEgit commit -m 'Other File Added''Other File Added'
  5. git checkout mastermaster
  6. git merge otherexampleotherexamplemaster Вы можете видеть, что он создал файл «OTHERFILE» в вашей master

От себя

git push Когда они в следующий раз git pull

git push origin master Разница между git pushgit push origin mastermasterвсе ветви.

Это будет использоваться, например, когда вы хотите нажать только одну ветвь объекта, чтобы член команды мог также увидеть изменения, которые вы внесли в ‘otherbranch’, и вы бы использовали git push origin otherbranch

Вывод

И они являются основами Git. Это, однако, сложный зверь. Существует много, много других команд — некоторые действительно полезны, а другие немного опасны. Вы можете выбрать один коммит и объединить его с вашей веткой, игнорируя все коммиты после него. Вы можете использовать Git, чтобы найти точный коммит, где ваш код был взломан. Вы можете откатиться к отдельному коммиту, который вы сделали ранее днем, днем ​​ранее, тремя неделями ранее или в любое время по шкале времени хранилища.

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