Jak przekazać lokalne repozytorium do Bitbucket za pomocą SourceTree bez wcześniejszego tworzenia repozytorium w bitbucket?

116

Czy istnieje sposób na zaimportowanie lokalnych repozytoriów Git do SourceTree i przesłanie ich na moje konto Bitbucket, mając na koncie utworzenie nowych repozytoriów identycznych z lokalnymi? Czy też muszę najpierw zrobić repozytorium online i wcisnąć do niego? Github ma sposób na publikowanie lokalnych repozytoriów bezpośrednio ze swojego klienta i tworzy je automatycznie, gdy publikujesz, ale ma ograniczone prywatne repozytoria. Po prostu odrabiam pracę domową, więc nie ma powodu, aby była publiczna, dlatego próbuję używać bitbucket.

cma0014
źródło

Odpowiedzi:

152

(zaktualizowano w dniach 3-29-2019, aby używać https zamiast ssh, więc nie musisz używać kluczy ssh)

Wygląda na to, że w przypadku BitBucket musisz najpierw utworzyć repozytorium online. Korzystając z instrukcji Atlassian , po prostu utwórz nowe repozytorium BitBucket, skopiuj adres URL repozytorium do schowka, a następnie dodaj to repozytorium jako nowy pilot do swojego lokalnego repozytorium (pełne kroki poniżej):

Uzyskaj adres URL repozytorium

  1. w repozytorium BitBucket wybierz „Klonuj” w prawym górnym rogu
  2. wybierz „HTTPS” zamiast „SSH” w prawym górnym rogu okna dialogowego
  3. powinien wyświetlać adres URL repozytorium w formularzu git clone <repository url>

Dodaj zdalne za pomocą CLI

  1. cd /path/to/my/repo
  2. git remote add origin https://bitbucket.org/<username>/<reponame>.git
  3. git push -u origin --all

Dodaj pilota za pomocą SourceTree

  1. Repozytorium> Dodaj pilota ...
  2. Wklej adres URL repozytorium BitBucket ( https://bitbucket.org/<username>/<reponame>.git)

Stara metoda: tworzenie i rejestrowanie kluczy SSH

(ta metoda jest stosowana, jeśli używasz adresu URL ssh zamiast adresu URL https, który wygląda jak ssh://[email protected]/<username>/<reponame>.git. Zalecam użycie po prostu https)

BitBucket doskonale nadaje się do prywatnych repozytoriów, ale musisz skonfigurować klucz ssh, aby autoryzować komputer do pracy z kontem BitBucket. Na szczęście Sourcetree sprawia, że ​​jest to stosunkowo proste:

Tworzenie klucza w SourceTree:

  1. W Tools> Optionsupewnij się, że SSH Client:jest ustawiony na PuTTY/Plinkpod Generalzakładką
  2. Wybierz Tools>Create or Import SSH Keys
  3. W wyskakującym okienku kliknij Generatei poruszaj myszą, aby nadać generatorowi kluczy losowość
  4. Powinieneś dostać coś takiego, jak pokazano na zrzucie ekranu poniżej. Skopiuj klucz publiczny (podświetlony na niebiesko) do schowka

    kit

  5. Kliknij Save private Keyi, Save public keyaby zapisać klucze w dowolnym miejscu (np. Do <Home Dir>/putty/ssk-key.ppki <Home Dir>/putty/ssh-key.pubodpowiednio) przed przejściem do następnej sekcji

Rejestracja klucza w BitBucket

  1. Zaloguj się na swoje konto BitBucket , a następnie w prawym górnym rogu kliknij swoje zdjęcie profilowe i kliknijSettings
  2. Przejdź do SSH Keyszakładki na lewym pasku bocznym
  3. Kliknij Add SSH Key, nadaj mu nazwę i wklej klucz publiczny skopiowany w kroku 4 z poprzedniej sekcji

Otóż ​​to! Powinieneś teraz być w stanie push / pull do prywatnych repozytoriów BitBucket. Twoje klucze nie są przeznaczone tylko dla Gita, wiele usług używa kluczy ssh do identyfikacji użytkowników, a najlepsze jest to, że potrzebujesz tylko jednego. Jeśli kiedykolwiek zgubisz klucze (np. Podczas zmiany komputera), postępuj zgodnie z instrukcjami, aby utworzyć i zarejestrować nowy.

Uwaga dodatkowa: tworzenie kluczy SSH przy użyciu interfejsu wiersza polecenia

Po prostu postępuj zgodnie z tym samouczkiem

woojoo666
źródło
użycie Paste the BitBucket repository url ([email protected]/<username>/<reponame>.git)zmusi Cię do dodania klucza ssh. Jeśli nie masz już istniejącego, będzie to ból.
Alex Kyriakidis
1
Tak, BitBucket jest przeznaczony głównie do prywatnych repozytoriów, więc aby rozpocząć, potrzebujesz klucza ssh. Nie martw się, nie jest tak źle, jak wygląda! Dodałem szybki tutorial do mojej odpowiedzi
woojoo666
3
Dlaczego zmagacie się z SSH i kluczami publicznymi / prywatnymi, skoro dużo łatwiej jest używać HTTPS? W Cloneoknie dialogowym przełącz listę rozwijaną w prawym górnym rogu z SSH na HTTPS i uzyskaj adres URL:https://bitbucket.org/<reponame>.git
Dan Dar3
1
@ DanDar3 Tak, dziękuję, zaoszczędziło mi to wielu kłopotów.
Excrubulent
1
@ DanDar3 wow, to o wiele łatwiejsze, zaktualizowałem odpowiedź, dzięki!
woojoo666
24

Właściwie istnieje prostsze rozwiązanie (tylko w wersji na Maca). Tylko cztery kroki:

  1. Kliknij prawym przyciskiem myszy repozytorium i wybierz „Opublikuj w zdalnym…”

SourceTree Publish to Remote Screeshot

  1. W następnym oknie pojawi się pytanie, czy chcesz opublikować (github, bitbucket itp.), A następnie gotowe.
  2. Połącz zdalne repozytorium
  3. Pchać
David
źródło
To musi być nowe. Właściwie nie korzystałem z repozytoriów od jakiegoś czasu, więc dam sobie radę.
cma0014
3
Właściwie to sprawdziłem tylko w wersji SourceTree na Maca, a nie na Windowsie. :(
David
1
Tak, sprawdziłem, że tworzy repozytorium na pilocie, ale potem nie łączy go z pilotami lokalnego repozytorium. Byłoby to niezłe ulepszenie dla następnych wersji
David
1
@bauerMusic zdarzyło mi się to również z oknem „w toku”. Ale nie ostatnio. Chociaż, jak powiedziałeś ... coś nie działa z tą funkcją. Nie łączy się z nowym zdalnym repozytorium, jak wszyscy byśmy się spodziewali. Mimo wszystko SourceTree to najlepszy menedżer GIT dla komputerów Mac, jaki znalazłem.
David,
1
Właściwie to dla mnie działa idealnie, tworzy repozytorium i łączy je z lokalnym i zdalnym, może od 2016 roku to poprawiają
Kross
10

Jak ilustruje ten film , zwykle najpierw tworzy się repozytorium online.

W SourceTree Release Notes zrobić wzmiankę o SourceTree 1.5+:

Obsługa tworzenia nowych repozytoriów na kontach zespołu / organizacji w Bitbucket.

Więc chociaż nie ma funkcji „publikowania”, możesz utworzyć repozytorium online z SourceTree.

W poście na blogu „ SourceTree for Windows 1.2 jest tutaj ” (wrzesień 2013) wspomniano również:

Teraz możesz skonfigurować swoje konta Bitbucket, Stash i GitHub w SourceTree i natychmiast zobaczyć wszystkie swoje repozytoria w tych usługach. Z łatwością je klonuj, otwieraj projekt w Internecie, a nawet twórz nowe repozytoria w usłudze zdalnej bez opuszczania SourceTree .
Znajdziesz go w menu pod Widok> Pokaż repozytoria hostowane lub za pomocą nowego przycisku w prawym dolnym rogu panelu zakładek.

http://blog.sourcetreeapp.com/files/2013/09/hostedrepowindow.png

VonC
źródło
Spróbuję tego, kiedy wrócę do domu, dzięki!
cma0014
Tak, ale utworzenie repozytorium lokalnego folderu deweloperów jest trudne.
Ben Racicot,
3

Użyłem tego i dobrze mi się udało. Jeśli twój katalog to

"repo", a twój projekt jest "hello", skopiuj tam projekt

cd /path/to/my/repo

Zainicjuj swój katalog

git init

Przeprowadźcie projekt

git add hello

zatwierdzić projekt

git commit

Dodaj konfiguracje, używając adresu e-mail i nazwy użytkownika, których używasz w Bitbucket

git config --global user.email
git config --global user.name

Dodaj komentarz do projektu

git commit -m 'comment'

popchnij projekt teraz

git push origin master

Zapoznaj się z mistrzem

git checkout master
bademba
źródło
3

Bitbucket obsługuje interfejs API REST, którego można używać do programowego tworzenia repozytoriów Bitbucket.

Dokumentacja i przykład cURL są dostępne tutaj: https://confluence.atlassian.com/bitbucket/repository-resource-423626331.html#repositoryResource-POSTanewrepository

$ curl -X POST -v -u username:password -H "Content-Type: application/json" \
   https://api.bitbucket.org/2.0/repositories/teamsinspace/new-repository4 \
   -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks" }'

W systemie Windows curl jest dostępny z powłoki Git Bash.

Korzystając z tej metody, możesz łatwo utworzyć skrypt do importowania wielu repozytoriów z lokalnego serwera git do Bitbucket.

Joe Savage
źródło
1

Skonfiguruj repozytorium Bitbucket (wiersz poleceń na komputerze Mac)

Utwórz nową APLIKACJĘ zaczynając od lokalnej repozytorium:

  1. Terminal -> cd ~ / Documents (Wklej ścieżkę do katalogu podstawowego APLIKACJI)
  2. Terminal -> mkdir (utwórz katalog z)
  3. Terminal -> cd (zmień katalog z katalogiem)
  4. BitBucket A / C -> utwórz repozytorium na koncie bitBucket
  5. Xcode -> utwórz nowy projekt xcode o tej samej nazwie
  6. Terminal -> git init (zainicjuj puste repozytorium)
  7. Terminal -> git remote add origin (np. Https: //[email protected]/app/app.git )
  8. Terminal -> git add.
  9. Terminal -> stan git
    1. Terminal -> git commit -m "IntialCommet"
    2. Terminal -> git push origin master

Utwórz repozytorium klonów APPLICATION:

  1. Terminal -> mkdir (utwórz katalog z)
  2. Terminal -> cd (zmień katalog z katalogiem)
  3. Terminal -> git clone (np. Https: //[email protected]/app/app.git )
  4. Terminal -> cd
  5. Terminal -> stan git (pokaż status edycji / aktualizacji pliku)
  6. Terminal -> git pull origin master
  7. Terminal -> git add.
  8. Terminal -> git push origin master
Shrikant Tanwade
źródło
1

Inne rozwiązanie dla użytkowników systemu Windows:

To wykorzystuje Github jako pomost do dostępu do Bitbucket, spowodowany brakiem możliwości publikowania bezpośrednio z aplikacji Windows Sourcetree.

  1. Załaduj lokalne repozytorium do aplikacji komputerowej Github.
  2. Opublikuj repozytorium jako prywatne (w celu zachowania prywatności - w razie potrzeby) repozytorium z aplikacji Github na swoje konto Github.
  3. Otwórz swoje konto osobiste / zespołowe w witrynie Bitbucket
  4. Utwórz nowe repozytorium Bitbucket, importując z Github.
  5. Usuń repozytorium w Github.

Gdy to zrobisz, wszystko zostanie załadowane do Bitbucket. Twoje lokalne piloty będą prawdopodobnie musiały być teraz skonfigurowane tak, aby wskazywały na Bitbucket.

David Ruiz
źródło
0

GIT dobrze służy do kontroli wersji i projektów zespołowych, jeśli zatwierdzenia i gałęzie są prawidłowo obsługiwane.
Krok 1: Sklonuj lokalne repozytorium za pomocą cli, jak wspomniano w powyższych odpowiedziach

$ cd [path_to_repo]
$ git remote add origin ssh: //[email protected]//.git
$ git push -u origin --all

Krok 2: Możesz wykonać dowolny z powyższych kroków, aby popchnąć / wyciągnąć swoje prace. Prostym sposobem jest użycie git gui. Zapewnia interfejs graficzny, dzięki czemu można łatwo ustawiać (dodawać) / usuwać ze sceny, zatwierdzać / cofać zatwierdzenie i wypychać / wyciągać. Początkujący mogą łatwo zrozumieć proces git.

$ git gui

(LUB)
Krok 2: Jak wspomniano powyżej. Kody Cli wykonają pracę.

$ git status
$ git add [nazwa_pliku]
$ git commit _m "[Comit message"] "
$ git push origin master / branch_name

Raj sree
źródło
0

Jako aktualizacja odpowiedzi Joego , ponieważ możesz napisać skrypt tworzenia repozytorium za pomocą API, tylko wywołanie API, którego potrzebowałem, było inne. Może to być spowodowane tym, że używamy serwera bitbucket, a nie chmury bitbucket.

Aby stworzyć nowe repozytorium w ramach projektu na naszym serwerze, użyłem:

curl -X POST -v -u USER:PASSWORD -H "Content-Type: application/json" \
http://SERVER/rest/api/1.0/projects/PROJECTNAME/repos/ \
-d '{"scmid":"git", "name":"REPONAME"}'

w której USER, PASSWORD, SERVER, PROJECTNAMEi REPONAMEsą oczywiście pożądane / wymagane wartości.

Wywołanie jest udokumentowane w dokumentacji API .

/rest/api/1.0/projects/{projectKey}/repos

Utwórz nowe repozytorium. Wymaga istniejącego projektu, w którym zostanie utworzone to repozytorium. Jedyne parametry, które zostaną użyte, to name i scmId.

Uwierzytelniony użytkownik musi mieć uprawnienie PROJECT_ADMIN, aby projekt kontekstu mógł wywołać ten zasób.

Baldrickk
źródło
0

(Co najmniej Linux / WSL) W przeglądarce na bitbucket.org utwórz puste repozytorium o tej samej nazwie, co lokalne repozytorium, postępuj zgodnie z instrukcjami proponowanymi przez bitbucket do importowania lokalnego repozytorium (dwa polecenia do wpisania).

Adhémar Patamob
źródło