This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
сервис_git [2023/09/14 15:26] val [On-Premise gitlab] |
сервис_git [2026/02/25 22:17] (current) val [Удаление чувствительных данных (паролей, ключей) из репозитория] |
||
|---|---|---|---|
| Line 12: | Line 12: | ||
| * [[https://youtu.be/SEvR78OhGtw|youtube/Артем Матяшов/Git. Большой практический выпуск (youtube)]] | * [[https://youtu.be/SEvR78OhGtw|youtube/Артем Матяшов/Git. Большой практический выпуск (youtube)]] | ||
| + | |||
| + | * [[https://github.com/github/gitignore/tree/main|A collection of .gitignore templates]] | ||
| ===== Работа с локальным репозиторием ===== | ===== Работа с локальным репозиторием ===== | ||
| Line 20: | Line 22: | ||
| server:~$ cd conf/ | server:~$ cd conf/ | ||
| + | или | ||
| + | server:~$ git -C conf/ ... | ||
| server:~/conf$ echo Hello World > file1 | server:~/conf$ echo Hello World > file1 | ||
| Line 48: | Line 52: | ||
| server:~/conf$ git log | server:~/conf$ git log | ||
| - | server:~/conf$ git log --follow -- file1 В каких коммитах менялся файл | + | server:~/conf$ git log --follow -- file1 # В каких коммитах менялся файл |
| - | server:~/conf$ git show <commit hash> Все изменения файлов в этом коммите по | + | server:~/conf$ git show <commit hash> # Все изменения файлов в этом коммите по |
| - | server:~/conf$ git show <commit hash>:file1 Содержимое файла в этом коммите | + | server:~/conf$ git show <commit hash>:file1 # Содержимое файла в этом коммите |
| - | server:~/conf$ git show <commit hash> file1 Изменения файла между этим и предыдущим коммитом | + | server:~/conf$ git show <commit hash> file1 # Изменения файла между этим и предыдущим коммитом |
| - | server:~/conf$ git diff <commit hash> file1 Изменения файла после этого коммита | + | server:~/conf$ git diff HEAD # Изменения после git add |
| + | |||
| + | server:~/conf$ git diff <commit hash> file1 # Изменения файла после этого коммита | ||
| server:~/conf$ git diff <commit hash N> <commit hash M> | server:~/conf$ git diff <commit hash N> <commit hash M> | ||
| server:~/conf$ git diff <commit hash N> <commit hash M> file1 | server:~/conf$ git diff <commit hash N> <commit hash M> file1 | ||
| + | |||
| + | server:~/conf$ git reset --hard <commit hash N> | ||
| </code> | </code> | ||
| Line 73: | Line 81: | ||
| do | do | ||
| cd $d | cd $d | ||
| - | [ -d $d/.git ] || git init > /dev/null | + | [ -d $d/.git ] || /usr/bin/git init > /dev/null |
| - | git add . | + | /usr/bin/git add . |
| - | git --no-optional-locks status | grep 'modified\|deleted\|new file\|renamed' | git commit -a -F - > /dev/null | + | /usr/bin/git --no-optional-locks status | grep 'modified\|deleted\|new file\|renamed' | /usr/bin/git commit -a -F - > /dev/null |
| done | done | ||
| Line 118: | Line 126: | ||
| * [[https://stackoverflow.com/questions/6565357/git-push-requires-username-and-password|Git push requires username and password]] | * [[https://stackoverflow.com/questions/6565357/git-push-requires-username-and-password|Git push requires username and password]] | ||
| + | * [[https://stackoverflow.com/questions/5480258/how-can-i-delete-a-remote-tag|How can I delete a remote tag?]] | ||
| <code> | <code> | ||
| Line 130: | Line 139: | ||
| $ git branch | $ git branch | ||
| + | |||
| + | $ ### git config --global http.sslVerify "false" | ||
| $ ### git config credential.helper store | $ ### git config credential.helper store | ||
| Line 142: | Line 153: | ||
| $ git tag | $ git tag | ||
| + | |||
| + | $ ###git tag -d ver1.3 | ||
| + | $ ###git push --delete origin ver1.3 | ||
| </code> | </code> | ||
| Line 184: | Line 198: | ||
| <code> | <code> | ||
| # git clone http://server.corpX.un/student/dhcp.git | # git clone http://server.corpX.un/student/dhcp.git | ||
| + | |||
| + | или | ||
| + | |||
| + | # git clone http://server.corpX.un:3000/student/dhcp.git | ||
| или | или | ||
| Line 273: | Line 291: | ||
| # git checkout REL1_31 | # git checkout REL1_31 | ||
| + | </code> | ||
| + | или | ||
| + | |||
| + | * [[Система Kubernetes#Развертывание через Kubespray]] | ||
| + | |||
| + | <code> | ||
| + | (venv1) server:~/kubespray# git tag -l | ||
| + | |||
| + | (venv1) server:~/kubespray# git checkout tags/v2.26.0 | ||
| + | </code> | ||
| + | |||
| + | ===== Удаление чувствительных данных (паролей, ключей) из репозитория ===== | ||
| + | <code> | ||
| + | server# apt install git-filter-repo | ||
| + | |||
| + | server# cd /tmp/ | ||
| + | |||
| + | server:/tmp# git clone https://server.corpX.un/student/openvpn1.git | ||
| + | |||
| + | server:/tmp# cd openvpn1/ | ||
| + | |||
| + | server:/tmp/openvpn1# git remote -v | ||
| + | |||
| + | server:/tmp/openvpn1# git filter-repo --path inventory.yaml --invert-paths | ||
| + | server:/tmp/openvpn1# git filter-repo --path openvpn1/files/server.key --invert-paths | ||
| + | |||
| + | server:/tmp/openvpn1# cp ~/openvpn1/inventory.yaml . -v | ||
| + | server:/tmp/openvpn1# cp ~/openvpn1/openvpn1/files/server.key openvpn1/files/ -v | ||
| + | |||
| + | server:/tmp/openvpn1# rm -rf ~/openvpn1 | ||
| + | |||
| + | server:/tmp/openvpn1# sops edit inventory.yaml | ||
| + | server:/tmp/openvpn1# sops edit openvpn1/files/server.key | ||
| + | |||
| + | server:/tmp/openvpn1# git add -v . | ||
| + | |||
| + | server:/tmp/openvpn1# git commit -m "erase secrets" | ||
| + | |||
| + | server:/tmp/openvpn1# git remote -v | ||
| + | server:/tmp/openvpn1# git remote add origin https://server.corpX.un/student/openvpn1.git | ||
| + | </code> | ||
| + | Settings -> Repository -> Protected Branches -> Allowed to force push: ON | ||
| + | <code> | ||
| + | server:/tmp/openvpn1# git push --force --all | ||
| + | server:/tmp/openvpn1# git push --force --tags | ||
| </code> | </code> | ||