Полезные советы по работе с Git и Github
Как удалить commit в Github
-
- Получаем хэш-код коммита, к которому хотим вернуться.
- Заходим в папку репозитория и пишем в консоль:
git reset --hard 209d0eb765a6760f2a7c65be8d7ff0f8342e1e4f
git push --force
Как объединить репозитории
Отдельную ветвь удаленного репозитория можно поместить в подкаталог текущего, сохранив его историю.
git subtree add --prefix=new https://github.com/username/repo.git master
https://github.com/username/repo.git
- удаленный репозиторийmaster
- ветвь удаленного репозиторияnew
- каталог, который будет создан в корне текущего репозитория, и в который будут помещены файлы из веткиmaster
удаленного репозитория
Это будет выглядеть как единый коммит, в котором все файлы репозитория repo
ветви master
будут добавлены в каталог new
.
Решение найдено в How do you merge two Git repositories?
Как создать пустую ветку в Git
git checkout --orphan new
Создает новую ветку new
без истории коммитов и переключается на нее. Если проверить существующие ветви репозитория командой git checkout
, то ветка new
отсутствует в списке, однако файлы в ветке new
находятся в индексе. Здесь мы может сделать коммит и зафиксировать имеющиеся каталоги и файлы или их все удалить командой:
git rm -rf .
Очищает ветку new от каталогов и файлов.
У первого коммита, сделанного в ветке new
, не будет родителей, и это будет корень новой истории, полностью отключенный от всех других ветвей и коммитов.
Решение найдено в git-scm
Смотри также: