Git на каждый день
Squash, upstream, mirrors, смена origin, force push — что реально нужно в работе.
Squash коммитов
Когда у вас 10 коммитов “fix typo”, “fix again”, “WIP” — squash в один чистый.
git rebase -i HEAD~10После сохранения откроется второй редактор — для сообщения объединённого коммита. Отредактируйте и сохраните.
Если коммиты уже запушены
Понадобится force push (см. ниже). Не делайте squash в общих ветках, где работают другие.
При PR можно squash merge через GitHub UI — проще и безопаснее.
Upstream
Для fork’ов: origin = ваш fork, upstream = оригинал.
git remote add upstream https://github.com/original/repo.git
git fetch upstream
git rebase upstream/main # актуализировать поверх оригиналаMirrors
Зеркало репозитория на другой хостинг:
git clone --mirror https://github.com/user/repo.git
cd repo.git
git remote set-url --push origin https://gitlab.com/user/repo.git
git push --mirrorСмена origin
git remote set-url origin git@github.com:user/new-repo.git
git push -u origin mainUntrack файла, который уже в репо
git rm --cached file.txt # удалить из git, оставить на диске
echo "file.txt" >> .gitignore
git commit -m "stop tracking file.txt".gitignore не работает
.gitignore не спасёт
Если файл уже отслеживается —
.gitignoreне поможет. Сначалаgit rm --cached, потом.gitignore.
Force push после rebase
git push --force-with-lease origin mainСвязанные статьи
- — сад на Quartz, деплой через git
- — CNAME для кастомного домена
- — все проекты на GitHub
Связанные