Ja też przełączam się na Git w Eclipse i czytam o tym problemie. Wydaje się, że current wisdom (choć nie wszyscy zgadzają) wynosi:
przyzwyczaić do nie mających swoje projekty poniżej katalogu roboczego.
Mieć repozytorium git dla każdej grupy powiązanych projektów zaćmienia (i być może więcej plików, oczywiście). Pojęcie "powiązanych projektów" zależy od Twojej wygody [*]
Dla każdego repozytorium, jeden katalog pierwszego poziomu dla każdego projektu Java. Oznacza to, że będziesz mieć katalog .git/
i na tym samym poziomie katalogi projektów.
Przykład: Załóżmy, że "przed GIT", trzeba było jedno miejsce pracy Eclipse z kilku projektów:
/wk/workspace/.metadata/
/wk/workspace/projXXX/
/wk/workspace/projXXXtest/ (related with the previous)
/wk/workspace/projYYY1/ |
/wk/workspace/projYYY2/ > three related projects
/wk/workspace/projYYY3/ |
/wk/workspace/projZ/ (a project you are not going to version in git)
Potem utworzyć dwa pustych katalogów, po jednym dla każdego repozytorium, powiedzieć:
~/repositories/XXX/
~/repositories/YYY/
a potem z nowym układzie GIT, musisz:
/wk/workspace/.metadata/
/wk/workspace/projZ/
~/repositories/XXX/.git/ (XXX related repository - non-bare)
~/repositories/XXX/projXXX/
~/repositories/XXX/projXXXtest/
~/repositories/YYY/.git/ (YYY related repository - non-bare)
~/repositories/YYY/projYYY1/
~/repositories/YYY/projYYY2/
~/repositories/YYY/projYYY3/
Eclipse (Egit) robi to wszystko dla Ciebie po kliknięciu Team-> Podziel na istniejącym projekcie i określić (w przykładzie) ~/repositories/XXX/.git/
jako repozytorium (~/repositories/XXX/
jako „katalog roboczy”, pozostawić „Path w repozytorium " puste).
[*] Należy pamiętać, że tutaj każda grupa projektów jest, z punktu widzenia Git, tylko zbiorem katalogów wewnątrz repozytorium. Niektóre istotne konsekwencje: w powyższym przykładzie nigdy nie będziesz mieć w przestrzeni roboczej Eclipse dwóch różnych gałęzi/wersji projektów projYYY1
- projYYY2
jednocześnie; i powiedzmy, kiedy otagujesz zatwierdzenie projektu, oznacza to, że zatwierdzasz pełne zatwierdzenie repozytorium (grupy projektów).
gdzie jest katalog ~? – rasen58
katalog ~ jest skrótem używanym dla katalogu domowego w systemach operacyjnych opartych na systemach uniksowych (patrz http://en.wikipedia.org/wiki/Katalog domowy) – ianmayo