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 - откат коммита
Рецепты
Обновить свой форк до актуальной версии
- Заходим на гитхабе в свой форк
- Переходим в раздел Pull request
- Жмём кнопку New pull request
- Под заголовком "Comparing changes" жмём малоприметную ссылку "Compare across forks"
- Выбираем свой нужный форк, нужную ветку (версию), затем выбираем нужный Head Repository, затем нужную ветку. При этом получается ссылка вида.
- Нажимаем Create Pull Request
- Проматываем экран ниже, нажимаем 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