
7 способов использовать Git для повышения производительности
9 января 2023 г.Git — самая популярная система управления исходным кодом с невероятным уровнем принятия разработчиками 93,87% (согласно Опрос StackOverflow за 2022 год). Это действительно мощная система с множеством скрытых функций, неизвестных большинству из нас, разработчиков.
В этом посте я покажу некоторые из этих функций, которые упростят вашу работу при использовании Git.
1 — Удалить удаленно удаленные ветки при выборке
Выдержка из документации Git:
<цитата>Git по умолчанию хранит данные, если они явно не удаляются; это распространяется на хранение локальных ссылок на ветки на удаленных устройствах, которые сами удалили эти ветки.
Если их оставить для накопления, эти устаревшие ссылки могут ухудшить производительность в больших и загруженных репозиториях, которые имеют много оттока веток, и, например. сделать вывод таких команд, как git branch -a --contains
Чтобы удалить локальные ветки, не имеющие ссылок на удаленное отслеживание, при извлечении всех ветвей вместо использования параметра --all
используйте параметр --prune
:
```баш {linenos=false} git fetch --prune
[git fetch --prune Documentation](https://git-scm.com/docs/git-fetch#Documentation/git-fetch.txt---prune)
## 2 - Merge/Rebase without checking out the target branch
When making a merge or a rebase, it's common to see people do the following:
```bash
git checkout branch-to-merge-from
git pull
git checkout my-working-branch
git merge branch-to-merge-from
Ветки Git — это просто ссылки на коммит. Когда мы делаем выборку, удаленные ветки создаются локально с префиксом origin/
, поэтому перед слиянием нет необходимости проверять branch-to-merge-from
. .
ℹ️ Префикс удаленной ветки зависит от удаленного имени, но по умолчанию используется origin
.
Следующее работает без извлечения и извлечения локальной ветки branch-to-merge-from
:
git fetch --prune
git merge origin/branch-to-merge-from
Документация по git Remote Branch
3 — Запустите конвейер CI/CD с пустой фиксацией
Если вы работаете с конвейером CI/CD (а так и должно быть), иногда вам нужно запустить конвейер без внесения изменений в код. Вместо того, чтобы изменять файлы, добавляя пустые строки в конце или создавая ненужные журналы, мы можем создать пустой коммит:
git commit --allow-empty -m 'Empty commit'
git push
документация git commit --allow-empty р>
4 – Просмотр файла в другой ветке
При работе над фичей нам часто нужно проверить файл в другой ветке, например, в производственной ветке (основной). Некоторые службы Git предлагают веб-интерфейс, упрощающий поиск файлов в определенных ветках, но если у вас нет этой опции, Git может отобразить файл в командной строке, не переключая ветки, используя show
, за которым следует имя ветки и путь к файлу.
```баш {linenos=false} git показать main:src/Program.cs
As with other Git commands, we can pass any commit or reference, instead of the branch name:
```bash {linenos=false}
# Show the program.cs file in the previous commit
git show HEAD~1:src/Program.cs
5 – Извлечь ранее использовавшуюся ветку
Чтобы вернуться к ранее проверенной ветке, просто передайте -
в качестве параметра ветки:
git checkout develop
git checkout main
git checkout - #Checkout the develop branch
6 — Поиск в Git
Если вы хотите найти строку в своем репозитории, используйте команду git grep
.
Чтобы найти строку во всех фиксациях, укажите список фиксаций в git grep
с помощью команды git rev-list --all
, как показано ниже: р>
# Search for the word "git" in all files of all commits
git rev-list --all | xargs git grep "git"
7 — Отображение журнала коммитов в виде графика
Git может отображать журналы коммитов в виде графика в командной строке. Для этого используйте параметр --graph
команды git log
.
ℹ️ Передайте параметр --oneline
, чтобы отобразить хэш фиксации и сообщение о фиксации в одной строке и упростить чтение графика.
```баш {linenos=false} git log --graph --oneline

Git can also show the commit history of a specific file:
```bash {linenos=false}
git log --graph --oneline systemcontext.md
Также опубликовано здесь
Нравится этот пост? Следуй за мной:
Оригинал