git clone https://github.com/user/lav.git cd d:\_GIT\lav git status git add -A git commit -m "Make change" git push git pull
Обучалка по GIT https://learngitbranching.js.org/
Инициализировать в текущем каталоге
git init .
Клонировать проект в текущую папку (можно указать любую)
git clone https://login@bitbucket.org/login/project.git .
Содержание
Добавление файлов
Чтобы добавить сразу все измененные и удаленные файлы в индекс, а не по одному
git add -u
можно добавить все измененные и удаленные файлы в какой-то определенной папке
git add -u /path/
Если нужно добавить все измененные и удаленные файлы только в текущем рабочем каталоге, то можно использовать точку
git add -u .
Если нужно добавить не только измененные и удаленные, а еще и новые файлы, то вместо -u используем -A
git add -A
Если нужно добавить только новые и измененные файлы, но не добавлять удаленные
git add --ignore-removal
Временно спрятать измененные файлы
git stash
Посмотреть спрятанные файлы
git stash list
Восстановить последнюю заначку
git stash apply
Если нужно не только последнюю, то из результата вывода git stash list берем нужную
git stash apply stash@{1}
Удалить спрятанное
# убирает последнюю заначку git stash drop # убирает определенную заначку git stash drop stash@{1}
Применение коммитов
git commit -m 'Комментарий к коммиту'
Отмена последнего коммита
Если поторопились с коммитом или напутали комментарий, то последний коммит можно затереть после правок новым коммитом
git commit --amend -m 'Новый комментарий к коммиту'
Если нужно отменить последний коммит с сохранением изменений
git reset --soft HEAD^
Если нужно совсем отменить последний коммит с удалением изменений
git reset --hard HEAD^
Если нужно удалить все лишние файлы (которые были удалены в коммите, но остались на диске)
git clean -f -d
Если коммит уже опубликован, то берем его sha1 код
git revert commit-sha1
Просмотр списка коммитов
git log
Список с информацией в виде патчей
git log -p
Список с информацией об измененных файлах
git log --stat
Список с информацией о созданных, переименованных, удаленных файлах
git log --summary
История изменений конкретного файла
git log filename
или каталога
git log dir/
Изменения за последние сколько-то недель, дней, часов
git log --since="1 week 3 day 2 hours" filename git log --since="1 day 6 hours" filename git log --since="2 hours" filename
Склеить несколько последних коммитов
# объединяем последние 5 коммитов git rebase -i HEAD~5 # в открывшемся редакторе меняем pick на squash у всех кроме первого и сохраняем файл # далее в еще одном редакторе вводим текст нового коммита и сохраняем
# заливаем изменения на сервер
git push --force
Работа с ветками
Создать новую ветку с именем branch_name
$ git branch branch_name
Переключиться на ветку branch_name
$ git checkout branch_name
Создать ветку branch_name и сразу переключиться на нее
$ git checkout -b branch_name
Слить ветку branch_name в ветку master
$ git checkout master $ git merge branch_name
Удалить ветку branch_name
$ git branch -d branch_name
Вывод списка веток (* помечена текущая активная ветка)
$ git branch develop * master testing
Вывести последние коммиты для каждой из веток
$ git branch -v
Вывод веток, которые уже слиты с текущей
$ git branch --merged
Вывод веток, которые еще не слиты с текущей
$ git branch --no-merged
Синхронизация данных с удаленного сервера
$ git fetch origin
вытянуть все ветки из репозитория
$ git fetch --all
отправка ветки branch_name на удаленный сервер
$ git push origin branch_name
получение ветки branch_name с удаленного сервера для работы (название локальной и удаленной ветки можно ставить разным)
$ git checkout -b branch_name origin/branch_name
или более простой вариант если названия одинаковые
$ git checkout --track origin/branch_name
удаление ветки branch_name на удаленном сервере (заливаем пустоту в ветку удаленного сервера)
$ git push origin :branch_name
добавляем локальную ветку на удаленный репозиторий и включаем ее отслеживание
git push -u origin dev
Добавить удаленный репозиторий
git remote add origin https://nickname@bitbucket.org/nickname/project.git
развернуть файлы из ветки (и удалить всё лишнее), если что-то было несохранненное — всё потеряется
git reset --hard origin/develop
получить информацию об удаленном репозитории
git remote show origin
заменить репозиторий origin на другой
git remote set-url origin new.git.url/here
Заменить редактор Git на Notepad++ в Windows
На 32-битной ОС:
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
на 64-битной ОС:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Полезные ссылки
Простое руководство по GIT на русском языке
Обучалка Gitу на английском языке (интерактивная)
Интерактивный тур по основам Git на русском
Лучший бесплатный графический клиент https://www.sourcetreeapp.com/