2013-03-22 9 views
5

Próbuję skonfigurować repozytorium git dla mojego projektu Eclipse za pomocą EGit. Mam jednak problem z wykluczeniem katalogu głównego/projektu z repozytorium. mój projekt, że istota, ma strukturę:Eclipse - wyklucza katalog główny z repozytorium git?

ProjectDirectory 
    src 
    war 
    etc 

chciałbym repozytorium zawiera src, war i etc, ale nie zawierają katalogu nadrzędnego ProjectDirectory. To dlatego, że jeśli chcę sklonować kopię projektu w mojej przestrzeni roboczej, ProjectDirectory2, repozytorium dla drugiego projektu spróbuje teraz utworzyć drugi katalog główny, ProjectDirectory. Niestety, kiedy próbuję dodać repozytorium do projektu za pomocą EGit, wydaje mi się, że mogę używać Team> Share Project tylko w folderze projektu i nie wydaje mi się, aby i tak wykluczyć katalog główny z repozytorium z w ramach Eclipse.

Jakieś sugestie, jak pominąć najwyższy katalog w repozytorium za pomocą EGit? Wolałbym móc robić wszystko z poziomu Eclipse, ale jeśli nie ma sposobu, istnieje sposób na skonfigurowanie repozytorium w ten sposób poza git, to nadal będziesz mógł używać kontrolki git regularnie z git na repozytorium pomija katalog najwyższego poziomu? Dziękuję bardzo.

Odpowiedz

2

Należy zobowiązać korzeń projektami dla wielu powodów:

  • Jeśli popełnić tylko podkatalogi swojego projektu, będziesz tęsknił pliki i foldery, które są ukryte poniżej korzenia projektu (np katalog .settings i inne). Te muszą zostać również zatwierdzone, w przeciwnym razie twój projekt będzie brakowało informacji i nie może prowadzić do tych samych wyników na innej maszynie.
  • Twoja próba sklonowania tego samego repozytorium po raz drugi w tym samym obszarze roboczym brzmi tak, jakbyś ponownie przeczytał o gałęziach git. W git, przełączanie między gałęziami odbywa się po mrugnięciu oka, więc gałęzie powinny być używane podczas pracy nad różnymi funkcjami, wersjami lub innymi wersjami twojego projektu.
  • Nazwa projektu Eclipse i nazwa folderu na dysku nie muszą być takie same (podczas tworzenia nowego projektu należy zwrócić uwagę na pole wyboru "użyj domyślnej lokalizacji"). Możesz więc wypróbować drugi klon projektu o innej nazwie.
  • Jeśli później dodasz więcej projektów do swojego obszaru roboczego (np. Projekt testowy), nie możesz łatwo udostępnić ich w tym samym repozytorium git, ponieważ zawartość tych dodatkowych projektów zostanie pomieszana z podkatalogami pierwszego projektu w magazyn.
+3

Rozumiem, że chcę uwzględnić podkatalogi, takie jak .settings, ale te mogą być nadal zawarte w repozytorium w sposób sugerowany przeze mnie. Zauważyłem też, że prawie każdy projekt, który widzę w Internecie (na przykład na githubie), wyklucza katalog główny, tak jak chcę to zrobić (tj. Raczej niż projectRepository/projectFolder/src to repozytorium na github wygląda po prostu projectRepository/src). Dlaczego wszystkie te projekty robią to w ten sposób, jeśli sposób, w jaki sugerujesz, ma swoje zalety? Dziękuję za szybką odpowiedź. – golmschenk

+0

Na przykład: https://github.com/gwtbootstrap/gwt-bootstrap – golmschenk

+0

Założę się, ponieważ nigdy nie mieli projektu testowego. Widziałem to dokładnie z projektem open source, w którym uczestniczę. Zleciliśmy również tylko podkatalogi, a następnie utworzyliśmy dodatkowe repo dla projektu testowego. Ale ciągnięcie/pchanie z/do wielu projektów stało się tak bardzo ruchliwe (i testy nie były zsynchronizowane z głównym projektem), więc w końcu ponownie zorganizowaliśmy cały kod i zatwierdziliśmy korzenie projektu: https://github.com/cgeo/ c-geo-opensource – Bananeweizen

2

Jeśli masz projekt maven, możesz utworzyć repozytorium bez folderu projektu utworzonego przez egit. Z mojego doświadczenia wynika, że ​​nie jest to możliwe z wtyczką egit. Ale można to łatwo zrobić z wiersza poleceń git.

Pierwszy przenieść istniejący projekt Eclipse/maven z obszaru roboczego Zaćmienie do folderu git (to właśnie również plugin Egit zrobił):

mv myproject ~/git/ 

obok utworzyć nowe repozytorium git

cd ~/git/myproject 
git init 

Teraz utwórz plik .gitignore i umieść go w folderze nowego repozytorium (~/git/myproject/.gitignore). To jest przykład dla.Plik gitignore:

# ignore all bin directories 
# matches "bin" in any subfolder 
bin/ 

# ignore all target directories 
target/ 

# ignore all files ending with ~ 
*~ 

# ignore eclipse directories and project files 
.settings/ 
.project 
.classpath 

Wreszcie initalize nowego repozytorium z treścią projektu

git add * 
git commit -m "My initial commit message" 

to wszystko. Teraz możesz ponownie uruchomić zaćmienie i ponownie zaimportować projekt z nowego repozytorium git. Wejdź do swojego widoku repozytorium zaćmienia i skopiuj "importuj istniejący projekt".

+0

Jeśli glob '*' pasuje do dowolnego pliku w twoim .gitignore, 'git add *' zawiedzie. –

0

Oto moje rozwiązanie. Choć nie jest szczególnie elegancki - kroki są proste, to działa, i może być wykonana w ciągu około 10 minut:

  1. sklonować zdalnego git repo do lokalnego systemu plików .. np ~/git/project_repo_root

  2. Tworzenie Twój projekt Eclipse jak zwykle .. np: ~/workspace/eclipse_project_root

  3. Usuń projekt z zaćmienia

  4. Otwórz menedżer plików i przenieść zaćmienie (ale nie filesystem!) po prostu stworzony z ~/Przestrzeń robocza/korzenia projekt do ~/git

    mv ~/workspace/eclipse_project_root ~/git/

  5. przesunąć .git/folderów z folderu repo do folderu głównego projektu Eclipse:

    mv ~/git/project_repo_root/.git ~/git/eclipse_project_root

  6. Używając powłoki przejdź do/eclipse_project_root/i wykonaj zwykłe polecenia wiersza poleceń dla wszystkich plików, które chcesz w repozytorium:

    git add <abc>; .. commit; .. push

  7. Powróć do Eclipse i przejdź do Git Perspective, a następnie kliknij "Dodaj istniejące lokalne repozytorium Git do tego widoku". Wybierz repozytorium git, z którym pracujesz, a widok powinien zostać zaktualizowany o wpis dotyczący tego repo, gdy powiesz, że jest OK.

  8. Po wyświetleniu lokalnego repo w widoku, można kliknąć prawym przyciskiem myszy i wybierz opcję Importowanie projektów

  9. Wróć do głównego punktu widzenia rozwoju (Java, etc) i powinieneś zobaczyć projekt tam z Git znaczników na głównym węźle w widoku eksploratora pakietów.

~~~~~

W tym momencie powinien pojawić się folder projektu Eclipse trzeba było tylko przeniesiona (do ~/git w przykładach opisanych tutaj)

Rozumiem to jest bardziej szczegółowe niż chciałbym, aby moje odpowiedzi były, ale dla tego konkretnego wyzwania/rozwiązania .. Nie znam prostszego sposobu na to.

Co do posta opisującego, powinieneś zawsze dołączyć katalog główny projektu eclipse. W rzeczywistości niektóre projekty/klienci/itd wymagają, aby repozytorium git nie zawierało folderu głównego.Więc rozwiązanie jak to jest konieczne czasami

+1

w 10 minut mogę odinstalować EGit i znaleźć fajnego klienta Git do użycia: D – anton1980

+0

Dzięki temu rozwiązaniu projekt git znajduje się w tym samym katalogu, co projekt eclipse. Domyślnie z EGit mamy dwa oddzielne katalogi, ale wydaje się, że nie można tego mieć podczas cięcia katalogu projektu. –

2

Krótka odpowiedź brzmi: Jest MOŻLIWA z Egit + M2E

Sztuką jest, gdy robi projektu akcji -> w oknie repo configure git

upewniając wykorzystania lub tworzenia repozytorium w folderze nadrzędnym projektu jest zaznaczone

i upewniając się, kliknij przycisk utwórz repozytorium

głównym celem tego jest utworzenie folderu .git w twoim projekcie root

nie powyżej twojego katalogu głównego projektu.

+0

Shanyangqu - uratowałeś mój dzień! – JavaTec