$HOME git repo (избирателно) към github?

Пазя много файлове в домашната си директория под git. Важни dotfiles, моята теза и др.

Искам да изпратя определени файлове в github, напр. моята emacs конфигурация, за да ги споделя.

Очевидно не искам да натискам цялото репо. submodules правилният път ли е?

Първата ми мисъл е да направя директория ~/github/emacs и rsync селективни файлове тук, след което да добавя подмодул под тази директория, сочещ към github, за натискане.

Това добра идея ли е или има по-добър начин?

(Не искам обаче моето локално git repo, съхраняващо всички файлове, да се забърква с тези неща.)


person user428502    schedule 10.02.2011    source източник


Отговори (3)


Съхранявам моите dotfiles (и друга конфигурация) също в github. Моят подход е да имам всички тези файлове само в репото и да ги свържа символично към мястото с помощта на задача за рейк. Това има предимството, че вашата действителна домашна директория не е в git repo и не е нужно да се справяте с подмодули навсякъде, тъй като това вероятно ще се превърне в бъркотия за поддръжка (и възпрепятства повторната употреба на вашите dotfiles и други неща). За вдъхновение моето хранилище за dotfiles може да бъде намерено тук: https://github.com/meineerde/dotfiles

Като цяло бих ви посъветвал да използвате повече по-малки git хранилища, по едно за всеки отделен проект. Също така трябва да се опитате да поддържате вашите структури на хранилище (особено подмодули) прости, за да улесните поддръжката. Просто поставете вашите неща един до друг и създайте ново git repo за всеки нов проект.

Бих обезсърчил използването на твърди връзки (както е предложено от Martinho Fernandes), тъй като връзката може лесно да бъде прекъсната от определени операции на файловата система и не е съвсем очевидно, че има твърди връзки.

person Holger Just    schedule 12.02.2011
comment
Много яко. И дали „рейк“ е инструмент, който всеки не-Ruby използващ Unix идиот с вече достатъчно инструменти в главата си може да добави към сместа, без да предизвиква препълване на мозъка? Вашият Rakefile изглежда достатъчно прост, но очакват ли ви скрити сложности? И управлява ли нещо извън обикновен списък от символни връзки? - person ScoBe; 17.02.2011
comment
Рейк е марката на рубин просто е това. Нищо наистина сложно. Ако използвате рубин навсякъде, ще използвате рейк. Въпреки това, можете лесно да преобразувате рейк задачите в shell скрипт, makefile или дори perl скрипт, ако трябва. По същество това е просто обвивка около редица ln -sf повиквания. - person Holger Just; 17.02.2011
comment
Аз също правя това, но използвам bash скрипт в хранилището, за да направя инсталирането. Също така използвам отделни малки хранилища, едно за shell неща, едно за vim и т.н. Работи добре и скриптът ви дава добро място за всяка друга свързана настройка. - person ergosys; 23.10.2011

Можете да създадете директория ~/github/emacs и да поставите там твърди връзки за действителните файлове.

person R. Martinho Fernandes    schedule 10.02.2011

Не обичам да използвам символни връзки за моята git директория dotfiles, тъй като е толкова трудно да се следи. Преминах към използване на вътрешна .git директория и git псевдоним; ето моето описание за версиониране на dotfiles с git.

person pithyless    schedule 25.06.2011