Ответ 1
Документы для обновления файла указывают, что вам необходимо предоставить SHA для файла, который вы будете заменять. Самый простой способ - запросить github для этого. Например:
> curl https://api.github.com/repos/testacc01/testrepo01/contents/test.txt
{
"name": "test.txt",
"path": "test.txt",
"sha": "4f8a0fd8ab3537b85a64dcffa1487f4196164d78",
"size": 13,
…
Итак, вы можете видеть, что SHA находится в поле "sha" ответа JSON. Используйте это, когда формулируете свой запрос на обновление файла с новой версией. После того, как вы успешно обновили файл, файл будет иметь новую SHA, которую вам нужно будет запросить, прежде чем ее можно будет обновить снова. (Если, я думаю, ваше следующее обновление идет по другому ветку.)