Github опубликовать коммит или объединить изменить / создать файл - PullRequest
0 голосов
/ 03 мая 2019

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

Файл должен называться как-то наподобие build.c, а в файле должно быть число коммитов главной ветви после коммита или слияния. Я хотел бы, чтобы это было сделано из удаленного репозитория, чтобы git hooks не работал.

Любая помощь будет высоко ценится.

Ответы [ 3 ]

3 голосов
/ 03 мая 2019

Это невозможно с github, и это было бы очень плохой идеей.

«Добавление файла в главную ветку github» означает добавление коммита.Таким образом, вы будете добавлять дополнительный коммит в ветку master при каждом нажатии.Вы не сможете совершить снова без натяжения или принудительного толчка.Этот файл будет меняться с каждым коммитом, поэтому практически любое слияние будет конфликтом.

Что вам нужно сделать, это изменить процесс сборки, чтобы вычислить желаемое число и поместить его в файл, который не был зафиксирован,См. Также git-description, который дает каждому коммиту уникальную идентификацию, более понятную человеку, чем просто Git SHA.

0 голосов
/ 09 мая 2019

Этот хук предварительной фиксации пока подойдет.

#!/bin/sh
#pre-hook to log master commit count then add branch ahead of master and record into a build_number.h file.
countM=$(git rev-list master --count) #master commit count
countB=$(($(git rev-list master.. --count) + 2)) #branch ahead of master commit count +1 for the merge +1 for this commit.
echo $(($countM + $countB)) > build_number.h
git add build_number.h
exit 0
0 голосов
/ 03 мая 2019

Если вы хотите записать только счетчик коммитов, я бы предложил git notes .

Заметки прикрепляются к коммитам, что позволяет избежать переписывания коммитов или непосредственного создания новых коммитов.в филиал.

Чтобы добавить примечание к заголовку master,

# in the local repository
git fetch origin master
# add a note
git notes add -m "commit count:$(git rev-list FETCH_HEAD --count)" FETCH_HEAD
# push the note to the remote repository
git push origin refs/notes/commits

Чтобы отобразить примечания,

git log --notes

Чтобы скрыть примечания,

git log --no-notes

Чтобы получить только ноту коммита,

git log -1 $commit --pretty=%N
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...