Читаем мануал или для старой версии.
Получить из репозитория:
1 |
git fetch origin |
или:
1 |
git fetch http://host.xz/path/to/repo.git/ |
Отправить проиндексированные изменения в локальный репозиторий (закоммитить, сделать коммит):
1 |
git commit -m 'Описание коммита' |
То же, но с заполнением описания коммита в открывающемся редакторе (vi):
1 |
git commit |
Закоммитить с автоматическим индексированием всех уже отслеживаемых на момент коммита файлов (для ввода описания откроется редактор):
1 |
git commit -a |
Добавить изменения в последний коммит (подробнее здесь):
1 |
git commit --amend |
Вывести изменения в репозитории:
1 |
git log HEAD..origin |
Вывести подробную информацию об изменения в коммитах:
1 |
git log -p |
Посмотреть изменения в репозитории с подробностями только по 1 последнему коммиту:
1 |
git log -p -1 HEAD..origin |
Вывести историю изменения файла:
1 |
git log -p file.php |
Вывести историю изменения за период (интервал дат):
1 |
git log --since "FEB 4 2018" --until "FEB 6 2018" |
Установить meld приложением по умолчанию для сравнения файлов
1 2 |
git config --global diff.tool meld git config --global difftool.prompt false |
Сравнить измененный файл с версией из репозитория:
1 |
git diff file.php |
Сравнить измененный файл с версией из репозитория в графическом приложении:
1 |
git difftool file.php |
Получить список измененных файлов из коммита:
1 |
git diff-tree --no-commit-id --name-only -r b3385486 |
Накатить на локальную ветку:
1 |
git merge origin |
Извлечь (fetch) данные с сервера и автоматически попытаться слить (merge) их с наработанным кодом:
1 |
git pull origin |
Отправить в репозиторий:
1 |
git push origin |
Посмотреть содержимое файла из ветки:
1 |
git show origin:index.php |
Посмотреть содержимое файла из коммита:
1 |
git show <commit>:index.php |
Добавить файлы по маске
1 |
git ls-files . | grep '\.htaccess' | xargs git add |
Добавить в коммит удаленные файлы:
1 |
git ls-files --deleted -z | xargs -0 git rm |
Удалить уже отслеживаемые файлы из репозитория, но не из текущего рабочего каталога:
1 |
git rm --cached <filename> |
Посмотреть статус в выбранном каталоге
1 |
git status local/modules/ |
Список измененных файлов, помещенных в индекс для коммита (разница между индексом и последним коммитом):
1 |
git diff --staged --name-only |
Список непроиндексированных файлов (новых или измененных), которые могут быть помещены в индекс git add .
:
1 |
git ls-files --others --exclude-standard |
Исключить файл file.php из списка проиндексированных для коммита (в рабочей директории файл останется измененным или новым):
1 |
git reset HEAD file.php |
Восстановить (заменить) файл в рабочей директории версией из репозитория:
1 |
git checkout file.php |
19 советов по повседневной работе с Git
Создать репозитарий из существующего проекта:
В удаленном репозитарии:
1 |
git init --bare |
В каталоге проекта:
1 2 3 4 5 6 |
git init git add . git commit -m 'initial commit' git remote add origin /path/to/remote/repo git push origin master |
При попытке клонировать удаленный репозиторий:
1 2 3 4 5 6 7 8 9 10 |
$ git clone ssh://user@remotehost.ru/home/user/git/project.git Cloning into 'project'... remote: Counting objects: 2630, done. remote: fatal: inflateInit: out of memory (no message) error: git upload-pack: git-pack-objects died with error. fatal: git upload-pack: aborting due to possible repository corruption on the remote side. remote: aborting due to possible repository corruption on the remote side. fatal: early EOF fatal: index-pack failed |
По совету отсюда добавил на удаленном хосте в /home/user/.gitconfig и все заработало:
1 2 3 4 5 |
[pack] threads = 1 deltaCacheSize = 128m windowMemory = 50m |
How to delete a file from a Git repository, but not other users’ working copies