# Клонируем репо в две папки рядом с каталогом project
git clone --no-local . "../new_front" # тут будет фронт
git clone --no-local . "../new_back" # тут будет бэкенд
cd ../new_back # перейдем в новый бэкенд
# Вычистим каталог front из истории бэкенда
git filter-repo --path "front/" --invert-paths
cd ../new_front # перейдем в новый фронт
# Оставим в проекте фронта только содержимое подкаталога front,
# сделав его новым корнем проекта
git filter-repo --subdirectory-filter "front/"
Могу их изменять/удалять/редактировать
если я изменил главную ветку, то чтобы данные изменялись на сервере
git pull
заберет изменения с гитлаба и применит их к рабочему каталогу.git fetch # скачать обновления с origin
git checkout -b new_branch origin/master # создать новую ветку от состояния origin/master
git rebase --interactive
brew install fig
brew install font-jetbrains-mono-nerd-font
bitrix/
git add --force "bitrix/файл"
.gitignore
bitrix/
!bitrix/подкаталог/
git status
сразу увидит содержимое подкаталога в неотслеживаемых. git remote add
и свяжете ветки git branch -u
как узнать в базовом проекте что мне кто то прислал новые комиты?
git pull --rebase # скачать изменённую историю
git reset --hard HEAD~2 # откатить на два коммита
git push --force # снова изменить историю
git fetch
git switch master
git reset --hard origin/master~2
git push --force
Коллегам придётся обновиться тоже через —rebase # клонируем репозиторий в соседний каталог
# иначе придётся использовать ключ --force
git clone --no-local . ../clonerepo/
# переходим в свежий клон
cd ../clonerepo
# чистим
git filter-repo --path "path/to/file" --invert-paths
# проверим что файл исчез
git log --all --oneline --name-status -- "path/to/file"
➜ git log --oneline
0aa4c37 (HEAD) Delete bigfile
65211de Add bigfile
591a997 Initial commit
➜ git rebase -i HEAD~2
pick 65211de Add bigfile
pick 0aa4c37 Delete bigfile
pick 65211de Add bigfile
squash 0aa4c37 Delete bigfile
Successfully rebased and updated refs/heads/main.
push
git rm
, он просто делает сразу два действияrm file.txt
git add file.txt
git rm
в ситуациях, когда хотим удалить файл из репозитория, но оставить в рабочем каталоге.git rm --cached file.txt
git commit
огромный архив картинок улетел в репозиторий github. и хотя мы их удалили
git config --list --show-origin