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

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


git

Розбіжності

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

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

Порівняння попередніх версійПопередня ревізія
Наступна ревізія
Попередня ревізія
git [2014/09/26 21:27] – [Клонирование репозитория] ssh clone wombatgit [2017/06/12 19:52] (поточний) – gource wombat
Рядок 1: Рядок 1:
 ====== GIT ====== ====== GIT ======
 +
 +В простейшем виде порядок работы с GIT-репозиторием примерно такой:
 +
 +  - Создание нового локального репозитория или клонирование уже существующего репозитория.
 +  - Выбор рабочей ветки, если их несколько.
 +  - Внесение изменений в проект и их запись.
 +  - Обновление удалённого репозитория из локального рабочего каталога.
  
 ===== Создание репозитория ===== ===== Создание репозитория =====
Рядок 5: Рядок 12:
 Создаём папку, которая станет репозиторием: Создаём папку, которая станет репозиторием:
      
-  mkdir uTox +  mkdir MyProject 
-  cd uTox+  cd MyProject
  
 Затем инициализируем её при помощи git. При этом создаётся вложенная подпапка ''.git''. Затем инициализируем её при помощи git. При этом создаётся вложенная подпапка ''.git''.
Рядок 16: Рядок 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   git clone ssh://<username>@<server>:<port>/home/git/project.git
Рядок 27: Рядок 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>
  
 Если получаем ошибку вида Если получаем ошибку вида
Рядок 39: Рядок 62:
  
   git merge --abort   git merge --abort
 +  
 +  
 ===== Разрешение конфликтов ===== ===== Разрешение конфликтов =====
  
Рядок 54: Рядок 79:
   git merge --no-ff <another_branch_name>   git merge --no-ff <another_branch_name>
      
 +
 +===== Внесение изменений =====
 +
 +После редактирования некоторых файлов в проекте, можно в любое время проверить состояние своего локального GIT-репозитория:
 +
 +  git status
 +
 +Его вывод покажет, какие были произведены изменения и подскажет, как их правильно сохранить. Обычно для сохранения своих изменений достаточно сделать следующее:
 +
 +  git add <file>
 +  git commit
 +
 +Последняя команда откроет текстовый редактор для вставки короткого (или не очень) комментария, описывающего внесённые изменения. Комментарий не может быть пустым.
 +
 +
  
 ===== Загрузка на сервер ===== ===== Загрузка на сервер =====
Рядок 59: Рядок 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.1411766867.txt.bz2 · Востаннє змінено: повз wombat