Шпаргалка по коммандам GIT
- Игнорируем изменения прав файлов (chmod)
- error: The following untracked working tree files would be overwritten by merge
- Локальный git ignore
- Удаляем тег на удаленном репозитории
- Слияние ветки в master
- Прячем правки (сохраняем на потом)
- Откатываем последний комит в remote
- Смотрим изменения перед пушем
- Создание и применение патча
Игнорируем изменения прав файлов (chmod)
git config core.fileMode false
Используем флаг --global чтобы настройка применялась для всех репозиториев(использует ~/.gitconfig вместо .git/config)
git config --global core.fileMode false
error: The following untracked working tree files would be overwritten by merge
git fetch --all
git reset --hard origin/master
Локальный git ignore
.gitignore для всех проектов:
git config --global core.excludesfile ~/.gitexcludes
nano ~/.gitexcludes
.gitignore для конкретного проекта:
nano .git/info/exclude
Удаляем тег на удаленном репозитории
Удаляем тег с remote:
git push --delete origin tagname
Удаляем тег локально:
git tag --delete tagname
Слияние ветки в master
git checkout master
git merge some-branch
git push
Прячем правки (сохраняем на потом)
git stash
git stash list
git checkout -b some-branch
git stash pop (git stash apply stash@{0})
Откатываем последний комит в remote
Ситуация
git add .
git commit -m "comment"
git push origin master
А надо было выполнить:
git push origin some-branch
Решение
Пушим изменения в правильную ветку:
git push origin some-branch
Потом на мастере получим изменения из удалённой репы:
git checkout master
git fetch --all
git rebase origin/master
Сбрасываем изменения на один шаг назад, и принудительно пушим в мастер:
git reset --hard HEAD~1
git push origin master -f
Смотрим изменения перед пушем
Только файлы:
git diff --stat --cached origin/master
composer.lock | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
Содержимое:
git diff --cached origin/master
Создание и применение патча
Создание патча
git diff --no-prefix > some-fix.patch
Применение патча:
git apply some-fix.patch
Тоже самое без git:
Создание патча
diff -Naru test.old.txt test.txt > some-fix.patch
Применение патча
patch -p0 < some-fix.patch
Комментарии (0)