Список команд:
workspase -> stage(local index)
git init — создание репозитория
git status — проверяет текущее состояние репозитория
git add filename.html — добавляет файл по версионный контроль(в stage(local index), на сцену)
git checkout filename.html — откат к последней добавленной версии файла(git add)
git diff — показывает есть ли различия в файлах в рабочем каталоге(workspase) и на сцене(stage(local index)) если не было коммитов, если были, то показывает различия между рабочей версией и local repository(зафиксированной с помощью commit -m)
git diff —cached — покажет изменения(отличия) в вашей рабочей директории(workspase) которые еще не были добавлены в индекс(stage(local index)) для последующего коммита
git diff HEAD — покажет изменения(отличия) в рабочей директории(workspase) от последнего коммита(stage(local index))
git diff customBranch — сравнивает текущие файлы в рабочей директории workspase с файлами в ветке customBranch и показывает различия
git diff HEAD~2 HEAD — сравнивает 2 версии
stage(local index) -> local repository
git commit -m «Комментарий» — фиксирует добавленные на сцену файлы(git add) в local repository. -m означает комментарий.
git commit -a -m «Комментария» — выполняются 2 команды: git add . + git commit -m «»
git show — просмотр содержимого коммита($ git show 1c002dd4b536e7479fe34593e72e6c6c1819e53b)
git checkout HEAD — показывает какие файлы изменены(отличаются в workspase и последней версии local repository)
git checkout HEAD filename.html — откат к последней зафиксированной(git commit) версии конкретного файла(файл обновится в workspase и stage(local index)).
git rm filename.html —cached — удаляем файл из под контроля версий. Но оставляем в workspase
git rm filename.html -f — удаляем файл из под контроля версий. А так же удалим из workspase
Ветки
git branch — выводит все ветки
git branch -va — выводит все ветки с коммитами + удаленный ветки
git branch newBranch — создаем новую ветку
git branch -d oldBranch — удаляет ветку
git branch -D branch_name — удаляет ветку —force
git branch -f master HEAD~3 — переносим текущую ветку к ветки HEAD на позицию — 3 комета
git checkout -b newBranch — создаем новую ветку и сразу переходим на нее
git checkout newBranch — переключаемся на ветку newBranch
git merge customBranch — совмещаем изменения customBranch с текущей(в которой находимся) веткой
git log — показывает последние коммиты
git log —oneline — каждый кормит выводит в одну строку(удобно)
git log —oneline —graph —decorate —all — оформление для git log
Решение конфликтов
git merge —abort — отменить слияние
1.Исправить конфликт вручную
2. git add
3. git commit -m
Исправление ошибок
git revert — делает новый коммит без изменений, затем нужен push(для удаленного хранилища)
git reset — Возвращает HEAD на комит назад(для локального репозитория)
git reset —hard commitHash — Возвращает состаяние файлов на версию коммита commitHash
git reset —soft commitHash — Возвращает HEAD на версию коммита commitHash, но сами файлы не меняются.
git cherry-pick <Commit1> <Commit2> <…> — копировать несколько коммитов на место, где сейчас находишься (HEAD)
git rebase — соединяет коммиты в одну ветку, подробнее: http://uleming.github.io/gitbook/4_Ребазирование.html
git fetch —all && git reset —hard origin/master — принять из удаленной ветки и перезаписать локальные файлы на удаленные(из удаленной ветки)
.gitignore — указываем какие файлы нужно игнорировать
echo *.env > .gitignore — создадим файл .gitignore
Работа с удаленным репозиторием
git blame <file> — позволяет увидеть кто редактировал и какую строку в файле
git remote — просмотр списка настроенных(добавленных) удаленных репозиторием
git remote add origin git@github.com:User/UserRepo.git — добавление удаленного репозитория
git fetch — скачивает данные с удаленного репозитория но не сливает
git pull —rebas — скачивает данные с удаленного репозитория и применяет rebase
git checkout -b new-feature-branch origin/new-feature-branch — получаем в новую ветку, ветку из удаленного репозитория(как там, без наших изменений)
Дополнительно
git tag -a 1.0.0 — добавить файл версий
git push —tags — заливаем теги в проект
SSH
ssh-keygen -t rsa -C «you@mail.com» — генерируем ключ ssh(это не гид команда)
Proxy
git config —global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080 — пропишем в настройках git прокси сервер
git config —global —unset http.proxy — удалим прокси сервер из настроек git
git config —global —get http.proxy — просмотрим текущий прокси сервер в настройках git
Бесплатные прокси: https://www.ip-adress.com/proxy-list
Полезные ссылки:
Комментарии закрыты!