GIT, Github

Полезные команды GIT

Репозитории

  • git remote add %name% %url% - добавить удалённый репозиторий... а какой ещё? :)
  • git remote remove %name% - удалить репозиторий из списка
  • git remote -v - список репозиториев в проекте

Изменения

  • git diff - Изменения в файлах
  • git diff %file% - изменения в файле

Добавить \ удалить файл

  • git add %file% - добавить файл в коммит
  • git reset %file% - удалить файл из коммита

Push / pull - работа с репозиторием

--allow-unrelated-histories
  • git pull origin master --allow-unrelated-histories - на случай ошибки fatal: refusing to merge unrelated histories

Ветки

  • git branch - список веток
  • git branch -a - список и локальных, и удалённых веток
  • git fetch - получить список новых веток. Принеси ветку, дружок :)
  • git branch -v - список веток с последним коммитом
  • git checkout %branch% - переключение на ветку
  • git checkout -b %branch% - создание новой ветки
  • git branch --merged - список веток уже слитых с текущей
  • git branch --no-merged - список веток ещё не слитых с текущей
  • git branch -d - удаление веток уже слитых с текущей (либо -D чтобы удалить принудительно)
  • git branch --move bad-branch-name corrected-branch-name - локальное переименование ветки из плохого имени в хорошее +
  • + git push --set-upstream origin corrected-branch-name - переименование ветки на сервере
  • + git push origin --delete %branch-name% - удалить ветку на сервере

Слияние

  • git merge %name% - вливаем ветку %name% в текущую ветку
  • git push origin master - вливаем полученный мастер в ориджин в репозитории
  • git branch -d %name% - удаляем уже ненужную ветку %name%

Логи

  • reflog
  • git log - история коммитов
  • git log -p - расширенная история коммитов
  • git log --oneline - короткая запись
  • git log --stat --graph - история в виде дерева, псевдографикой

Коммиты

  • git checkout %commit_hash% - переключение на коммит
  • git show %commit_hash% - информация по коммиту
  • git commit --amend -m 'New commit message' - переименование последнего коммита
  • git revert hash_commit - откат коммита

Рецепты

Обновить свой форк до актуальной версии

  1. Заходим на гитхабе в свой форк
  2. Переходим в раздел Pull request
  3. Жмём кнопку New pull request
  4. Под заголовком "Comparing changes" жмём малоприметную ссылку "Compare across forks"
  5. Выбираем свой нужный форк, нужную ветку (версию), затем выбираем нужный Head Repository, затем нужную ветку. При этом получается ссылка вида.
  6. Нажимаем Create Pull Request
  7. Проматываем экран ниже, нажимаем Merge Pull Request и тут же Confirm merge

Работаем двумя репозиториями

Источник.

  • git remote show - Посмотреть добавленные удаленные репозитории, там обычно будет origin.
  • git remote add <имя> git@github.com:user/BBBB.git - Добавить ещё один (как пример, с гитхаба), в нашем случае будет second
  • git checkout -b test origin/master - Сделаем ветку от мастера первого репозитория
  • git merge second/master - и подмержим туда мастер второго (решаем кофликты, коммитим)
  • git push -u second mytest - и теперь отправим эту ветку в второй репозиторий в ветку mytest