Push-файлы в удаленный репозиторий git - PullRequest
1 голос
/ 09 апреля 2011

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

Это для использования в Linux. Если вам нужна дополнительная информация, просто спросите.

Ответы [ 3 ]

2 голосов
/ 09 апреля 2011

но я хотел бы запихнуть сами файлы вместе с изменениями в репо

Не уверен, что вы здесь имеете в виду.

Вы в итоге создали пустой репозиторий на вашем флэш-накопителе?Если это так, то по идее нет проверенных файлов.

Но вы можете использовать git archive для экспорта ваших файлов или просто создать второй, не обнаженный клон на вашем флэш-накопителе.

И, возможно, проверить документы, касающиеся рабочий каталог .

0 голосов
/ 09 апреля 2011

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

Чтобы достичь этого, вам нужно настроить хук после обновления в хранилище назначения (.git/hooks/post-update). Нечто подобное должно сработать:

#!/bin/sh
git checkout -f

Не забудьте убедиться, что он исполняемый.

0 голосов
/ 09 апреля 2011

git checkout master если вы не работаете с пустым хранилищем.

В зависимости от ваших потребностей, пустой репозиторий может быть не тем, что вам нужно.

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

Вот примеры использования:

  • только резервное копирование: возможно, пустое хранилище лучше, потому что у вас будет только пространство, занимаемое хранилищем, сжатый, а не-также пространство из рабочей копии.

  • копирование с полным доступом к файлам, не должно быть актуальным все время: простой клонированный хранилище, используйте git reset origin/master, чтобы стереть все, что находится в рабочей копии, в пользу внесенных изменений.

  • копирование с файлами постоянно обновляется: это самый сложный случай, потому что git по умолчанию не обновляет рабочую копию при отправке. Сделал быстрый поиск, и один из упомянутых методов использует хук после обновления: http://jennyandlih.com/pushing-remote-git-working-copy. Обратите внимание, что это, вероятно, не разрешит редактирование этой копии и замену на push, если вы не вникнете в сундук, который вы можете выяснить самостоятельно.

Моя рекомендация (я делаю это все время), обновляйте клон вручную, когда вам нужно:

Создать простой клон (не голый). Тогда git branch staging и git checkout staging. Теперь у вас есть рабочая копия, хотя вам придется обновлять ее вручную git rebase origin/master, когда вы хотите получить изменения. Вы можете просто перенести изменения от постановки к мастеру. Просто имейте в виду, что любая «основная» ветвь в этом репозитории, вероятно, будет не в порядке с изменениями, которые в нее вносятся, и фактически не должна использоваться или полагаться на нее.

...