Користувальницькькі налаштування

Налаштування сайту


git

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
git [2014/08/23 00:19]
wombat [Выбор ветки]
git [2017/06/12 22:52] (поточний)
wombat gource
Рядок 1: Рядок 1:
 ====== GIT ====== ====== GIT ======
 +
 +В простейшем виде порядок работы с GIT-репозиторием примерно такой:
 +
 +  - Создание нового локального репозитория или клонирование уже существующего репозитория.
 +  - Выбор рабочей ветки, если их несколько.
 +  - Внесение изменений в проект и их запись.
 +  - Обновление удалённого репозитория из локального рабочего каталога.
  
 ===== Создание репозитория ===== ===== Создание репозитория =====
 +
 +Создаём папку, которая станет репозиторием:​
 +  ​
 +  mkdir MyProject
 +  cd MyProject
 +
 +Затем инициализируем её при помощи git. При этом создаётся вложенная подпапка ''​.git''​.
 +
 +  git init
 +
 +Можно также внести настройки владельца репозитория:​
 +
 +  git config user.email "​wombat@example.com"​
 +  git config user.name "​Vladimir"​
 +  ​
  
 ===== Клонирование репозитория ===== ===== Клонирование репозитория =====
  
-  git clone https://​github.com/​v2e/uTox+  git clone https://​github.com/​Vladimir/MyProject 
 + 
 +  git clone ssh://<​username>​@<​server>:<​port>/​home/​git/​project.git 
 +  ​
  
  
Рядок 11: Рядок 36:
  
   git checkout <​branch_name>​   git checkout <​branch_name>​
 +  ​
 +
 +===== Обновление с удалённого репозитория =====
 +
 +  git checkout <​branch_name>​
 +  git pull
 +
 +===== Создание ветки =====
 +
 +  git checkout -b <​branch_name>​
 +
 +((http://​www.git-scm.com/​book/​en/​Git-Branching-Basic-Branching-and-Merging#​Basic-Branching))
 +
 +
 ===== Слияние веток ===== ===== Слияние веток =====
  
 +  git merge <​another_branch_name>​
 +
 +Если получаем ошибку вида
 +
 +  <​file_name>:​ needs merge
 +  error: you need to resolve your current index first
 +
 +при каком-то действии,​ то текущее задание на слияние можно отменить так:
 +
 +  git merge --abort
 +  ​
 +  ​
 ===== Разрешение конфликтов ===== ===== Разрешение конфликтов =====
 +
 +Если при попытке слияния веток git выдаёт ошибку вида:
 +
 +''​Automatic merge failed; fix conflicts and then commit the result.''​
 +
 +То нужно устранить конфликты в содержимом конфликтующих файлов вручную,​ после чего повторить попытку слияния.
  
 http://​genomewiki.ucsc.edu/​index.php/​Resolving_merge_conflicts_in_Git#​Common_questions_for_when_git_fails_during_the_merge http://​genomewiki.ucsc.edu/​index.php/​Resolving_merge_conflicts_in_Git#​Common_questions_for_when_git_fails_during_the_merge
  
 +  git add <​edited_conflicting_file1>​
 +  git add <​edited_conflicting_file2>​
 +  git commit
 +  git merge --no-ff <​another_branch_name>​
 +  ​
 +
 +===== Внесение изменений =====
 +
 +После редактирования некоторых файлов в проекте,​ можно в любое время проверить состояние своего локального GIT-репозитория:​
 +
 +  git status
 +
 +Его вывод покажет,​ какие были произведены изменения и подскажет,​ как их правильно сохранить. Обычно для сохранения своих изменений достаточно сделать следующее:​
 +
 +  git add <​file>​
 +  git commit
 +
 +Последняя команда откроет текстовый редактор для вставки короткого (или не очень) комментария,​ описывающего внесённые изменения. Комментарий не может быть пустым.
 +
 +
 +
 +===== Загрузка на сервер =====
 +
 +  git push origin <​branch_name>​
 +
 +
 +===== Удаление ветки =====
 +
 +==== локальной ====
 +
 +  git branch -d <​branch_name>​
 +
 +==== удалённой ====
 +
 +  git push origin --delete <​branch_name>​
 +
 +
 +
 +===== Изменение комментария =====
 +
 +==== К последнему коммиту ====
 +
 +
 +Если возникла необходимость изменить комментарий к сохранённому коммиту,​ не отправленному на сервер,​ нужно выполнить((http://​stackoverflow.com/​a/​179147))
 +
 +  git commit --amend
 +
 +Если изменения уже были отправлены на сервер,​ то после этого нужно отправить новую информацию на север
 +
 +  git push <​remote>​ <​branch>​ --force
 +
 +
 +==== К ранним коммитам ====
 +
 +Если нужно отредактировать комментарий не к последнему коммиту,​ а к некоторому более раннему,​ необходимо выполнить(( ​ http://​stackoverflow.com/​a/​180085))
 +
 +  git rebase --interactive $parent_of_flawed_commit
 +
 +где ''​$parent_of_flawed_commit''​ -- идентификатор коммита,​ предшествующего самому раннему из редактируемых.
 +
 +После этого откроется редактор со списком коммитов,​ начиная с самого старого из подлежащих редактированию. Возле каждого из них нужно выставить соответствующее слово, которое обозначает действие для данного коммита. Согласно подсказке,​ которую,​ Git показывает прямо в редакторе,​
 +
 +<​code>​
 +#  p, pick = use commit
 +#  r, reword = use commit, but edit the commit message
 +#  e, edit = use commit, but stop for amending
 +#  s, squash = use commit, but meld into previous commit
 +#  f, fixup = like "​squash",​ but discard this commit'​s log message
 +#  x, exec = run command (the rest of the line) using shell
 +</​code>​
 +
 +После этого нужно следовать подсказкам Git. Чаще всего, всё сведётся просто к устранению конфликтов и выполнению команды
 +
 +  git rebase --continue
 +
 +дл каждого конфликта.
 +
 +Для публикации исправленных записей используется команда
 +
 +  git push origin <​ветка>​ -f
 +
 +После чего необходимо оповестить всех участников проекта о необходимости скопировать эти изменения к себе.
 +
 +
 +====== Визуализация ======
 +
 +===== Картинка =====
 +
 +===== Видео =====
 +
 +Программа [[http://​gource.io/​ | Gource]] умеет создавать красивое видео с визуализацией хода разработки,​ исходя из лога Git.
 +
 +  gource -1280x720 -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -crf 1 -threads 0 -bf 0 gource.mp4
 +
 +  gource -1280x720 -o gource.ppm
 +  ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i gource.ppm -vcodec libx264 -preset ultrafast -crf 1 -threads 0 -bf 0 gource.mp4
 +
 +  gource -1280x720 -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libvpx -b 10000K gource.webm
 +
 +  ​
 +
 +
 +
 +
 +
 +
 +====== Ссылки ======
 +
 +===== Книги =====
 +
 +==== На русском ====
 +
 +[[http://​www.git-scm.com/​book/​ru | Pro Git book]]
  
 +==== На английском ====
  
 +[[http://​www.git-scm.com/​book/​ | Pro Git book]]
  
  
git.1408742370.txt.bz2 · В останнє змінено: 2014/08/23 00:19 by wombat