git клонировать один файл и sh обратно на удаленный - PullRequest
0 голосов
/ 26 мая 2020

Название может вводить в заблуждение. Цель состоит в том, чтобы создать простой инструмент bash для изменения ссылки на файл build_options.txt с помощью токена (и не давая никому доступа к репо, или, по крайней мере, очень ограниченно). Он должен быть в определенной ветке c (так что -bi думаю, что есть), а затем создать меню или указать некоторые параметры. После этого на удаленном компьютере мне понадобится это редактирование для сборки.

Я считаю, что клонирование требуется, но на самом деле нужно только изменить этот build_options.txt . Я пробовал использовать - разреженный , но это кажется сложным, и я не продвинутый пользователь git. Git используется версия 1.9.1. Доступ есть как s sh, так и https.

Вкратце: запустите этот сценарий, получите локальную копию build_options.txt и не более того, тогда git pu sh origin или что-то подобное должно быть возможно в другой одноразовой ветке. Ура!

1 Ответ

1 голос
/ 26 мая 2020

Git версия 1.9.1 очень старая - текущая Git - 2.26, скоро выйдет 2.27 - и даже в Git 2.27 код частичного клонирования не готов для использования обычными людьми. В версиях Git до 2.17 частичного клона не существует. Все это означает, что вы буквально не можете клонировать отдельный файл.

Git построено на основе коммитов. Каждая фиксация содержит полный снимок каждого файла. Чтобы получить один файл, вы получаете полную фиксацию, которая дает вам каждый файл. Чтобы сделать новый коммит, вы должны написать коммит, который хранит каждый файл, поэтому даже если вы установили последнюю Git и использовали частичные клоны, вам все равно нужно было бы получить довольно полный клон, так что у вас есть последняя версия каждого файла. Другого варианта нет: вы должны получить каждый файл.

Вы можете сделать мелкий клон, если хотите; поддержка мелких клонов должна хорошо работать даже в древних Git 1.9.1, я думаю.

В любом случае, когда у вас есть каждый файл, вы можете просто go с этим: проверить фиксацию , создайте имя ветки, измените один файл, git add один файл и git commit, чтобы сделать новый снимок каждого файла. Теперь вы можете git push эту новую фиксацию в новую ветку на origin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...