2010-07-22 11 views
524
  1. Mam niepusty katalog (np./Etc/coś) z plikami, których nazwy nie można zmienić, przenieść ani usunięte.Jak przekonwertować istniejący niepustny katalog do katalogu roboczego Git i przekazać pliki do zdalnego repozytorium

  2. Chcę sprawdzić, czy ten katalog do git w miejscu.

  3. Chcę móc przekazać stan tego repozytorium do zdalnego repozytorium (na innej maszynie) za pomocą "git push" lub czegoś podobnego.

To trywialne Subversion (obecnie robimy to za pomocą Subversion), używając:

svn mkdir <url> -m <msg> 
cd <localdir> 
svn co <url> . 
svn add <files etc> 
svn commit -m <msg> 

Co jest odpowiednikiem git?

Czy mogę "git clone" w pustym katalogu i po prostu przenieść katalog .git i wszystko działa?

+4

Może po prostu nie rozumiem tego, ale czy nie możesz uruchomić 'git init' w lokalnym katalogu? – Philipp

+0

Masz na myśli to, że masz repo w innym miejscu i chcesz dodać do tego repo całą zawartość tego innego katalogu, który nie jest repo? A może chcesz utworzyć nowe repo w tym katalogu? – Cascabel

+2

Próbowałem podsumować ten problem w prostym artykule. Chciałbym podzielić się tym tutaj, mam nadzieję, że to pomoże. http://zeshan.info/add-existing-project-to-git-repository/ –

Odpowiedz

854

Biorąc skonfigurowaniu demona git na <url> i pusty repozytorium:

cd <localdir> 
git init 
git add . 
git commit -m 'message' 
git remote add origin <url> 
git push -u origin master 
+12

** Instrukcje do 'okax ** wydają się działać. Mogę teraz uruchomić: 'git origin' config branch.master.remote i ' git config branch.master.merge bibl/głowice/master' i co będę skończyć się będzie dokładnie taki sam, jak gdyby Sklonowałem zdalne repozytorium? tj. 'Git pull' i' git push' będą * po prostu działają *? – HMW

+0

@HMW Rzeczywiście, to po prostu to! – abyx

+0

dzięki. to działa – honcheng

11

W przypadku zdalnego repozytorium nie jest pusta (tak jest w przypadku, gdy używasz IBM devops na hub.jazz .net), wtedy należy użyć następującej sekwencji:

cd <localDir> 
git init 
git add -A . 
git pull <url> master 
git commit -m "message" 
git remote add origin <url> 
git push 

EDIT 30-ci 17 stycznia: proszę zobaczyć poniżej komentarze, upewnij się, że jesteś na właściwej repo!

+0

Powyższe polecenia wymazały wszystkie moje istniejące kompilacje :(Proszę zachować ostrożność przed wykonaniem powyższych kroków –

+0

to pchnięcie do repo pracy, uwaga. – user1532587

17

Oto moje rozwiązanie:

git init 
git remote add origin PATH/TO/REPO 
git fetch 
git checkout -t origin/master 
8

To jak ja. Dodałem wyjaśnienie, aby zrozumieć, co się dzieje.

Initialize lokalnym repozytorium

  • zainicjalizuję Git z

    git init,

  • dodać wszystkie pliki do kontroli wersji z

    git add.

  • Tworzenie popełnić z przesłaniem swojego wyboru

    git commit -m 'AddingBaseCode'

    Inicjalizacja zdalnego repozytorium

  • Tworzenie projektu na Github i skopiuj adres URL projektu i skopiuj adres URL projektu.

    enter image description here

    link zdalnego repo z lokalnego repo

  • teraz używać kopiowane URL, aby połączyć się z lokalnym repo ze zdalnym GitHub repo. Kiedy klonujesz repozytorium przy użyciu git clone, automatycznie tworzy ono zdalne połączenie o nazwie , początek, wskazując ponownie sklonowane repozytorium. Polecenie remote służy do zarządzania zestawem śledzonych repozytoriów.

    git remote add pochodzenie https://github.com/hiteshsahu/Hassium-Word.git

    Synchronizacja

  • Teraz musimy scalić kod lokalny ze zdalnym kodu. Ten krok jest krytyczny, w przeciwnym razie możemy wygrać możliwość wypychania kodu na Github. Musisz zadzwonić "git pull" przed naciśnięciem kodu.

    git mistrz pochodzenie ciągnąć --allow-niepowiązanych-historie

    Commit kod

  • końcu wcisnąć wszystkie zmiany na Github

    git Push -u pochodzenie mistrz

Powiązane problemy