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

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


git

Розбіжності

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

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

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
git [2014/08/23 00:29]
wombat [Создание репозитория]
git [2017/06/12 22:52] (поточний)
wombat gource
Рядок 1: Рядок 1:
 ====== GIT ====== ====== GIT ======
 +
 +В простейшем виде порядок работы с GIT-репозиторием примерно такой:
 +
 +  - Создание нового локального репозитория или клонирование уже существующего репозитория.
 +  - Выбор рабочей ветки, если их несколько.
 +  - Внесение изменений в проект и их запись.
 +  - Обновление удалённого репозитория из локального рабочего каталога.
  
 ===== Создание репозитория ===== ===== Создание репозитория =====
Рядок 5: Рядок 12:
 Создаём папку, которая станет репозиторием:​ Создаём папку, которая станет репозиторием:​
   ​   ​
-  mkdir uTox+  mkdir MyProject 
 +  cd MyProject
  
 Затем инициализируем её при помощи git. При этом создаётся вложенная подпапка ''​.git''​. Затем инициализируем её при помощи git. При этом создаётся вложенная подпапка ''​.git''​.
Рядок 15: Рядок 23:
   git config user.email "​wombat@example.com"​   git config user.email "​wombat@example.com"​
   git config user.name "​Vladimir"​   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 
 +  ​
  
  
Рядок 23: Рядок 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 --no-ff ​<​another_branch_name>​+  git merge <​another_branch_name>​ 
 + 
 +Если получаем ошибку вида 
 + 
 +  <​file_name>:​ needs merge 
 +  error: you need to resolve your current index first 
 + 
 +при каком-то действии,​ то текущее задание на слияние можно отменить так: 
 + 
 +  git merge --abort 
 +   
 +  ​
 ===== Разрешение конфликтов ===== ===== Разрешение конфликтов =====
  
Рядок 41: Рядок 79:
   git merge --no-ff <​another_branch_name>​   git merge --no-ff <​another_branch_name>​
   ​   ​
 +
 +===== Внесение изменений =====
 +
 +После редактирования некоторых файлов в проекте,​ можно в любое время проверить состояние своего локального GIT-репозитория:​
 +
 +  git status
 +
 +Его вывод покажет,​ какие были произведены изменения и подскажет,​ как их правильно сохранить. Обычно для сохранения своих изменений достаточно сделать следующее:​
 +
 +  git add <​file>​
 +  git commit
 +
 +Последняя команда откроет текстовый редактор для вставки короткого (или не очень) комментария,​ описывающего внесённые изменения. Комментарий не может быть пустым.
 +
 +
  
 ===== Загрузка на сервер ===== ===== Загрузка на сервер =====
Рядок 46: Рядок 99:
   git push origin <​branch_name>​   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.1408742987.txt.bz2 · В останнє змінено: 2014/08/23 00:29 by wombat