Страницы

Поиск по вопросам

четверг, 2 января 2020 г.

В каких ветках есть локальные изменения

#git #git_branch #git_remote


Как узнать, какие ветки содержат закоммиченные, но ещё не запушенные изменения?
    


Ответы

Ответ 1



примерно так: $ git branch -vv * master c488ea5 [origin/master: ahead 1, behind 1] 20160210184133 test ffc6775 [origin/test: ahead 1] 20160210183855 test2 ffc6775 [origin/test2: behind 1] 20160210183855 test3 7ff0eab 20160210184754 здесь мы видим, что ветки master, test и test2 «привязаны» к удалённым репозиториям (показано и имя репозитория и ветка «привязки»). также видно, что ветки master и test отстоят на один коммит каждая «впереди» (ahead 1), а master и test2 «позади» (behind 1) от содержимого удалённого репозитория. дополнительный вопрос, поднятый в комментариях: Как его сократить только до веток, у которых есть ahead/behind? И как убрать commit message из таблицы? с помощью опций команды branch, по-моему, никак. можно «порезать» вывод чем-то внешним. например, если доступна программа gnu/sed: $ git branch -vv | sed -rn 's/(: (ahead|behind) [0-9]+[^]]*\]).*/\1/p' * master c488ea5 [origin/master: ahead 1, behind 1] test ffc6775 [origin/test: ahead 1] test2 ffc6775 [origin/test2: behind 1]

Ответ 2



git remote show origin, где origin может быть надо заменить на ваш удалённый источник, настроенный в репозитории (в который, собственно, хотите запушить). В конце он выводит информацию о состоянии между ветками: Local refs configured for 'git push': develop pushes to develop (up to date) master pushes to master (local out of date) dummy pushes to dummy (fast-forwardable) up to date — ветки одинаковы, на удалённом сервере всё из неё есть local out of date — изменения с сервера затянуты, но в локальной ветке их ещё нет fast-forwardable — можно пушить, удалённая ветка сделает fast-forward до вашей

Комментариев нет:

Отправить комментарий