Как я могу перенести один git коммит программным способом?

Я периодически получаю сообщения от git, которые выглядят так:

Your branch is behind the tracked remote branch 'local-master/master' 
by 3 commits, and can be fast-forwarded.

Я хотел бы иметь возможность писать команды в сценарии оболочки, которые могут выполнять следующие действия:

Как я могу узнать, может ли моя текущая ветвь быть быстро перенаправлена ​​из удаленной ветки, которую она отслеживает?

Как я могу узнать, сколько коммитов "за" моей веткой?

Как я могу перемотать вперед, простоодин commit, так что, например, моя локальная ветвь перешла бы от "сзади 3 коммитов" к "сзади 2 коммитов"?

(Для тех, кто заинтересован, я пытаюсь собрать качественное зеркало git / darcs.)

Ответы на вопрос(3)

Ваш ответ на вопрос