A PHP Error was encountered

Severity: 8192

Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

Filename: mysql/mysql_driver.php

Line Number: 319

10 советов и приемов для начинающих по использованию Git

10 советов и приемов для начинающих по использованию Git


Рубрика: Новости Linux
Метки:
Просмотров: 8809

Существует тенденция, благодаря которой новые технологии становятся катализатором внедрения в основное русло технологического развития конкретных парадигм разработок и лучших практических приемов. Назовем этот феномен "Can't Buy Me Love" ("Любовь не купить") в честь фильма 80-х годов, в котором один школьный умник для повышения собственной популярности нанимает понравившуюся ему девушку для того, чтобы она изображала его подружку. Возможно, что последним примером такого феномена является появление и использование Git - системы управления версиями, имеющей открытый код и существенно повышающей уровень формализации при управлении версиями исходного кода. Я в течение нескольких лет пользовался другими решениями, такими как системы контроля версий CVS и Subversion, но Git, как средство управления исходным кодом, более естественно вписался в мой технологический процесс.

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

1. Добавление файлов одновременно с выполнением операции commit

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

%>git add . %>git commit -m "Latest commit message"

Сохраняем предыдущее состояние и с помощью флага -a выполняем одновременное добавление файлов и подтверждение изменения:

%>git commit -a -m "Latest commit message"

Однако в большинстве случаев вам не следует пользоваться таким сокращением. Далее в этой статье я приведу вам, по крайней мере один пример, показывающий, почему этого не следует делать (по-видимому, это совет 5 – прим.пер.).

2. Сохраняем команды вместе с Git - алиасами

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

[alias] st = status co = checkout cm = commit pom = push origin master

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

%>git config -l

3. Выборочная подготовка файлов к выполнению операции commit

Иногда вы можете работать с несколькими файлами одновременно, но при выполнении ближайшей операции commit хотите добавить в репозитарий только некоторые из них. Для того, чтобы это сделать, вы можете воспользоваться интерактивной операцией добавления. Например, предположим, я создал два новых файла, ShopController.php и ForumController.php, но хочу добавить и зафиксировать (с помощью команды commit) добавление только первого файла. Я могу запустить процедуру интерактивного добавления, указав параметр -i для команды git add:

%>git add -i

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

*** Commands *** 1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked

5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp

Выбрав вариант 4, вы можете интерактивно указать, какие файлы вы хотите добавить:

What now> 4 1: application/controllers/ForumController.php

2: application/controllers/ShopController.php Add untracked>>

4. Игнорирование файлов и директорий с помощью .gitignore

Самое первое, что мне следует сделать после инициализации нового Git репозитория, это - создать файл .gitignore. Файл .gitignore используется для того, чтобы отфильтровывать те файлы и каталоги, изменение которых вы не хотите отслеживать в Git репозитарии. Когда, например, работа ведется над новым проектом Zend Framework, я обычно не оправляю в репозитарий проектную документацию, изображения, предназначенные для показа на сайте, а также файл, имеющий имя notes.txt, подразумевается, что мой файл .gitignore выглядит следующим образом:

docs public/images notes.txt

5. Удаление из списка зафиксированных новых только что добавленных файлов

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

%>git rm --cached schema-notes.txt

После того, как эта команда будет выполнена, вы можете добавить эти файлы в ваш файл .gitignore и снова вернутся к выполнению операции commit.

6. Просмотр содержимого предыдущих версий зафиксированных файлов

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

%>git show HEAD^:application/controllers/AboutController.php

Символ "^" указывает количество предыдущих версий, на которое при просмотре файла надо вернуться назад (число шагов "отката" -прим.пер.). Таким образом, приведенный выше пример команды покажет предыдущую версию файла AboutController.php. Если вы хотите посмотреть на три версии назад, вы должны использовать три символа "^", например:

%>git show HEAD^^^:application/controllers/AboutController.php

В качестве альтернативы вы можете при указании ссылки на файл воспользоваться хэш значением операции commit. Например, если вы хотите просмотреть содержимое AboutConroller.php в том виде, как оно было перед пятью последними изменениями, вы можете выполнить команду git log и получить хеш значение, а затем использовать первые пять символов этого хеш значения для просмотра содержимого файла:

%>git show 23aa985:application/controllers/AboutController.php

7. Редактирование ваших последних зафиксированных сообщений в журнале

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

%>git commit --amend

Исполнение этой команды позволит вам загрузить в текстовый редактор самое последнее зафиксированное (с помощью команды commit) сообщение и вы сможете отредактировать сообщение и сохранить исправленный вариант.

8. Сохранение текущего состояния без фиксации изменений

Случайное прерывание вашего обычного процесса программирования является неизбежным и часто ставит вас в положение, когда вы не совсем готовы вносить в репозитарий изменения, а вам вдруг необходимо что-то исправить и зафиксировать, что не связанно с текущей работой. Вы можете сохранить ваши текущие изменения с помощью команды stash, это позволит вам вернуться к предыдущей точке фиксации, после чего вы можете сделать и зафиксировать (с помощью команды commit) другие изменения. Затем вы можете вернуться к сохраненному состоянию. Например, предположим, я работал на проектным документом README и вдруг обнаружил вопиющую орфографическую ошибку. Я могу сохранить мои текущие изменения следующим образом:

%>git stash save

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

%>git stash pop

9. Просмотр вашего репозитария

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

%>git instaweb --httpd apache2

С помощью переключателя —httpd передается параметр apache2, указывающий Git, что на данной машине работает веб сервер Apache. По умолчанию это - lighthttpd, хотя поддерживаются также и несколько других серверов.

10. Находим причину проблемы

Иногда кто-нибудь из команды (но не вы, конечно) может добавить в репозитарий не совсем отлаженный код и испортить ваш билд. Естественно, вы захотите, чтобы кто-то взял на себя вину за эту проблему, но кто внес ошибку? Используйте команду blame для того, чтобы это узнать:

%>git blame application/controllers/AboutController.php

23aa9852 (Jason Gilmore 2010-06-03 12:34:04 -0400 11) public function indexAction()

23aa9852 (Jason Gilmore 2010-06-03 12:34:04 -0400 12) { 0e9e9f49 (Jason Gilmore 2010-06-03 13:32:47 -0400 13)

echo "Missing semicolon" 23aa9852 (Jason Gilmore 2010-06-03 12:34:04 -0400 14) }


  • Комментариев: 0

  • Вконтакте

  • Facebook:

    Оставьте комментарий!

    grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

    Имя и сайт используются только при регистрации

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

    Авторизация 

    MaxSiteAuth.

    (обязательно)