git gc --prune=now --aggressive
--max-count
для git log, чтобы ограничить количество показываемых коммитов. Например, git log --max-count=10 "src/filename"
покажет только последние 10 коммитов, в которых был изменен файл. Это может сократить время ожидания и нагрузку на процессор.--no-pager
для git log, чтобы отключить использование программы less для показа вывода. Например, git log --no-pager "src/filename"
покажет историю файла без задержки и возможности прокрутки. Это может быть полезно, если вы хотите просто посмотреть последние изменения файла.git log --since="2020-01-01" --until="2020-12-31" "src/filename"
покажет только коммиты, сделанные в 2020 году. Это может быть полезно, если вы знаете примерное время, когда файл был изменен. В svn было довольно удобно ориентироваться на последовательные номера редакций.
git describe
, в котором присутствует ближайшая метка (или выбранная метка, если делать git describe --match 'mask'
), количество коммитов после этой метки и хеш последнего коммита. Например, в одном и том же дереве linux я вижу:$ git describe
xtensa-6.8-rc2-esp32-spi-8-gb25ff15921c2
$ git describe --match 'v*'
v6.8-rc2-52-gb25ff15921c2
$ git describe --match 'v?.?'
v6.7-13495-gb25ff15921c2
Hint: You have divergent branches and need to specify how to reconcile them.
Hint: You can do so by running one of the following commands sometime before
Hint: your next pull:
Hint:
Hint: git config pull.rebase false # merge
Hint: git config pull.rebase true # rebase
Hint: git config pull.ff only # fast-forward only
Hint:
Hint: You can replace "git config" with "git config --global" to set a default
Hint: preference for all repositories. You can also pass --rebase, --no-rebase,
Hint: or --ff-only on the command line to override the configured default per
Hint: invocation.
git pull --no-rebase
git config --global pull.rebase false
user@server$ docker run -it --rm alpine:3.1
$ apk update && apk add curl
$ curl -vvv --tlsv1.0 https://domain.example
git pull
это на самом деле алиас для git fetch
+ git merge
git fetch
получает новое состояние ветки из origin, а потом передает управление git merge
, он в свою очередь если ваша ветка разошлась делает merge, если нет то делает fast forward
как следствие могут появиться не нужные комиты вида "Merge branch "test" to "test""
git pull
делать всегда git fetch
, а потом смотреть git status
а там уже либо git rebase origin/test
либо git pull
git stash
либо сделать комит Please, commit your changes or stash them before you can merge.