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

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


git

Розбіжності

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

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

Порівняння попередніх версійПопередня ревізія
Наступна ревізія
Попередня ревізія
git [2014/08/22 21:24] – [Загрузка на сервер] wombatgit [2017/06/12 19:52] (поточний) – gource wombat
Рядок 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 --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 
 +   
 +  
 ===== Разрешение конфликтов ===== ===== Разрешение конфликтов =====
  
Рядок 29: Рядок 79:
   git merge --no-ff <another_branch_name>   git merge --no-ff <another_branch_name>
      
 +
 +===== Внесение изменений =====
 +
 +После редактирования некоторых файлов в проекте, можно в любое время проверить состояние своего локального GIT-репозитория:
 +
 +  git status
 +
 +Его вывод покажет, какие были произведены изменения и подскажет, как их правильно сохранить. Обычно для сохранения своих изменений достаточно сделать следующее:
 +
 +  git add <file>
 +  git commit
 +
 +Последняя команда откроет текстовый редактор для вставки короткого (или не очень) комментария, описывающего внесённые изменения. Комментарий не может быть пустым.
 +
 +
  
 ===== Загрузка на сервер ===== ===== Загрузка на сервер =====
Рядок 34: Рядок 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.1408742681.txt.bz2 · Востаннє змінено: повз wombat