Можно ли хранить историю некоторых файлов отдельно в Git? - PullRequest
1 голос
/ 05 января 2020

Есть хранилище с кодом.

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

Например, есть каталог .vscode с настройками VS Code и файл с примечаниями my_notes.txt, и я хочу иметь возможность доступа к ним с разных компьютеров.

Как можно Я удостоверяюсь, что указанные каталоги и файлы сохраняются в хранилище (желательно с историей изменений), но чтобы их история не смешивалась с историей разработки кода и в то же время они были доступны в этом хранилище?

Например, я изменил my_notes.txt на одном компьютере, а затем сделал коммит:

git commit my_notes.txt <some_magic>
git push <some_magic>

После этого я хочу получить этот файл на другом компьютере:

git pull <some_magic>

Возможно, для этого подходят ветки-сироты, но я не мог найти, как это сделать, я хочу.

Если я сделаю так:

echo my_notes.txt >> .gitignore
git add .gitignore
git commit -m 'update gitignore'
git checkout --orphan orhf-branch
git rm -r --cached .
rm -rf *
echo 'some text' > my_notes.txt
git add .
git commit -m 'Orphan commit'
git checkout master

, тогда файл my_notes.txt исчезнет из главной ветви.

Можно ли сделать так, чтобы файл my_notes.txt присутствовал, когда Я переключаюсь на ветку master, но история ее изменений была сохранена в orhf-branch? И чтобы я мог изменить его в ветке master, но он не отображается как измененный или не отслеженный в master?

1 Ответ

1 голос
/ 05 января 2020

Вы можете добавить ветку orhf-branch вашего собственного репозитория в качестве подмодуля в вашей основной ветке.

В качестве примера такой техники см. « Какой самый простой способ развернуть папку в ветви в git? ».

В качестве подмодуля, my_notes.txt будет виден в подпапке (скажем, 'orhf'), которая является папкой root подмодуля.
Тем не менее, любое изменение / новая фиксация, выполненная в ветви master, будет отделена от orhf_branch.

Любые изменения, которые вы вносите в orhf_branch и push, могут быть обновлены в любом клоне с помощью git submodule update --remote.

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