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
git add -f “admin/controller/module/test.php”
admin/*
!admin/controller
admin/controller/*
!admin/controller/module
admin/controller/module/*
!admin/controller/module/test.php
git check-ignore **/* # показать все проигнорированные файлы
admin/controller/level2.txt
admin/controller/module/level3.txt
admin/controller/module/test2.php
admin/level1.txt
git check-ignore -v **/* # показать какие правила сработали
.gitignore:2:!admin/controller admin/controller
.gitignore:3:admin/controller/* admin/controller/level2.txt
.gitignore:4:!admin/controller/module admin/controller/module
.gitignore:5:admin/controller/module/* admin/controller/module/level3.txt
.gitignore:6:!admin/controller/module/test.php admin/controller/module/test.php
.gitignore:5:admin/controller/module/* admin/controller/module/test2.php
.gitignore:1:admin/* admin/level1.txt
И чтобы изменения кода показывал не в двухоконном режиме, а в одной области (красным - удалённые, зелёным - добавленные)