git_level1

После того как произвели первоначальную настройку git, можно продолжать.
git help — помощь по командам
git help config — помощь по конкретной команде

Создаем наш репозиторий:
mkdir projectA
cd projectA
git init
Создастся папка .git с пустым репозиторием, где и хранятся все метаданные.

Добавляем первый файл
touch README.txt
git add README.txt — файл переходит в состояние staged(как бы заставляем за ним следить)
Возможных вариантов добавления масса:
git add README.txt — добавляем один файл
git add README.txt LICENSE добавляем несколько файлов
git add —all добавляет все измененные или новые файлы.
git add *.txt — добавляет все файлы из текущей папки с расширением txt.
git add docs/*.txt — добавляет все файлы из docs с расширением txt.
git add docs/ — добавляет все файлы из docs
git add «*.txt» — добавляет все файлы из всего проекта с расширением txt.

git commit -m «Add README.txt» — делаем наш первый коммит. Описание лучше делать в настоящем времени!
git commit -a -m «MODIFY README» -делаем коммит и автоматически делает add, для всех измененных файлов, новые файлы НЕ добавляет.
git commit —amend -m «MODIFY README» если забыли, например добавить файл, добавляем файл и можем перезаписать коммит.

git reset —soft HEAD^ — отменяет последний коммит. и переместить HEAD на один коммит ранее, все файлы как до коммита будут в staged.
git reset —hard HEAD^ — отменяет последний коммит и удаляет все изменения!
git reset —hard HEAD^^ — отменяет последние два коммит и удаляет все изменения!
git reset HEAD filename -отменяем add для файла, делаем его опять не контролируемым(unstaged)
HEAD — это последний коммит в текущей ветке.

git checkout — filename — отменяем все изменения в файле с последнего коммита(откатываем и теряем ВСЕ изменения).

git status — показывает изменения с последнего коммита, в процессе дабавления можем, с помощью этой команды, наблюдать как файл меняет свой статус)

git log — история коммитов.
git log —pretty=online выводит историю коммитов, 1 коммит = 1 строка
git log —pretty=format:»%h %ad- %s [%an]» выводит историю коммитов, в определенном формате
git log —oneline -p показывает патчи между коммитами
git log —oneline —stat показывает сколько строк было изменено
git log —oneline —graph показывает в псевдографике историю втч ветки
git log —until=1.minute.ago
git log —since=1.day.ago
git log —since=1.year.ago —until=1.hour.ago
git log —since=2016-01-01 —until=2016-11-01

git diff — показывает историю не staged(контролируемых) файлов с последнего коммита.
git diff —staged показывает историю staged(контролируемых) файлов с последнего коммита.
git diff HEAD — тоже что и git diff
git diff HEAD^ — показывает разницу между текущим состоянием и предыдущим коммитом.
git diff HEAD^^ — показывает разницу между текущим состоянием и пред предыдущим коммитом.
git diff HEAD~4 показывает разницу между текущим состоянием и 4 коммитами ранее
git diff HEAD^ HEAD показывает разницу между предыдущим и текущим коммитом
git diff hash1 hash2 показывает разницу между коммитами с задаными хэшами
git diff master branchB показывает разницу между двумя ветками
git diff —since=2016-01-01 —until=2016-11-01 показывает разницу между состояниями с заданым временем

git blame app.py -показываем построчно кто добавил какую строку
git remote add origin https://myhub.com/ProjectA.git добавляем удаленный репозиторий.
количество репозиториев неограничено, мы можем например добавить тестовый репозиторий
git remote add anotherRepo https://myhub.ua/ProjectA.git
git remote -v смотрим информацию о удаленных репозиториях
git remote show origin смотрим информацию о ветках в удаленном репозитории
git remote rm repoName удаляем удаленный репозиторий
git remote prune origin удаляет локальную ветку,указывающую на ветку в удаленном репозитории
git push -u origin master — отправляем данные с нашего репозитория в удаленный
git push origin :branchB — удаляем ветку branchB с удаленного репозитория
git push —tags отправляем в удаленный репозиторий и наши метки
git pull получаем данные с удаленного в наш репозиторий и синхронизируем их

git clone https://myhub.ua/projectB.git — создаст папку ProjectB и сделает там копию удаленного репозитория
git clone https://myhub.ua/projectB.git folderName- создаст папку folderName и сделает там копию удаленного репозитория

git branch отобразит список веток
git branch -r отобразит список веток в удаленном репозитории
git branch cat создать ветку cat
git checkout cat переключится на ветку cat
git checkout v0.0.1 переключится на коммит с меткой v0.0.1
git checkout -b admin создает и переключается на ветку admin
git merge cat обьединяем текущую ветку с веткой cat
git branch -d cat удаляем ветку cat
git branch -D cat удаляем ветку cat, даже если есть не обьединенные изменения!

git tag отобразит список меток, обычно используется для именования версии релиза
git tag -a v0.0.3 -m «version 0.0.3»

git fetch — стянуть информацию с удаленного репозитория но не сливая ее с локальной

git rebase — перемещает все отличия из master и которых нет в origin/master во временное хранилище, запускает все коммиты из origin/master, запускает все коммиты из временной области.
git rebase —continue если был конфликт, то запускаем эту команду после его исправления
git rebase —skip пропускаем патч который вызвал конфликт
git rebase —abort отменить обьединение

git rm README — удаляет файл из локальной файловой системе
git rm —cached README прекращает следить за файлом, но остается в ФС


Комментарии: