Я хочу получить фиксации определенной ветки. следующий мой код
exec("git log $branch", $logs);
$ branch может быть хозяином или любой другой ветвью. Но это дает все фиксации.
Но это дает все фиксации.
Конечно: он дает все коммиты достижимые из master
главы, которые все совершают, даже если они являются частью другой ветки. До самого первого (обычно делается на главной ветке)
Даже если вы должны использовать другую ветку, вы все равно получите доступ к любой фиксации из этой другой ветки HEAD, даже если они являются частью master
(если предположить, что другая ветка была выполнена из одного из главных коммитов)
x--x--x--X (master)
\
--o--o--O (anotherBranch)
git log anotherBranch = O-o-o-X-x-x-x
Вот почему вам нужны два параметра: один, который запустит извлечение фиксации, которое остановит его:
git checkout mybranch
git log --all --not $(git rev-list --no-walk \
--exclude=refs/heads/mybranch \
--exclude=HEAD \
--all)
Поместите это в свою команду Php, и вы получите только те коммиты, которые вам нужны.