Bagaimana cara mendorong repo lokal ke Bitbucket menggunakan SourceTree tanpa membuat repo di bitbucket terlebih dahulu?

116

Apakah ada cara untuk mengimpor repo git lokal saya ke SourceTree dan mendorongnya ke akun Bitbucket saya, membuat repo baru yang identik dengan repo lokal saya dibuat di akun saya? Atau apakah saya harus membuat repo online terlebih dahulu dan mendorongnya? Github memiliki cara untuk mempublikasikan repositori lokal Anda langsung dari kliennya, dan membuatnya secara otomatis saat Anda mempublikasikan, tetapi memiliki repositori pribadi yang terbatas. Saya hanya mengerjakan pekerjaan rumah jadi tidak ada alasan untuk mempublikasikannya, itulah mengapa saya mencoba menggunakan bitbucket.

cma0014
sumber

Jawaban:

152

(diperbarui pada 3-29-2019 untuk menggunakan https, bukan ssh, jadi Anda tidak perlu menggunakan kunci ssh)

Sepertinya untuk BitBucket, Anda harus membuat repo online terlebih dahulu. Dengan menggunakan instruksi dari Atlassian , cukup buat repositori BitBucket baru, salin url repositori ke clipboard, dan kemudian tambahkan repositori itu sebagai remote baru ke repositori lokal Anda (langkah lengkap di bawah):

Dapatkan URL Repo

  1. di repo BitBucket Anda, pilih "Klon" di kanan atas
  2. pilih "HTTPS", bukan "SSH" di kanan atas dialog
  3. itu harus menunjukkan url repo Anda di formulir git clone <repository url>

Tambahkan Remote Menggunakan CLI

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

Tambahkan Remote Menggunakan SourceTree

  1. Repositori> Tambahkan Jarak Jauh ...
  2. Tempel url repositori BitBucket ( https://bitbucket.org/<username>/<reponame>.git)

Metode Lama: Membuat & Mendaftarkan Kunci SSH

(metode ini adalah jika Anda menggunakan ssh url daripada https url, yang sepertinya ssh://[email protected]/<username>/<reponame>.git. Saya sarankan hanya menggunakan https)

BitBucket sangat bagus untuk repo pribadi, tetapi Anda harus menyiapkan kunci ssh untuk mengotorisasi komputer Anda agar bekerja dengan akun BitBucket Anda. Untungnya Sourcetree membuatnya relatif sederhana:

Membuat Kunci di SourceTree:

  1. Di Tools> Options, pastikan SSH Client:disetel ke PuTTY/Plinkbawah Generaltab
  2. Pilih Tools>Create or Import SSH Keys
  3. Di jendela popup, klik Generatedan gerakkan mouse Anda untuk memberikan keacakan pada generator kunci
  4. Anda harus mendapatkan sesuatu seperti yang ditunjukkan pada gambar di bawah. Salin kunci publik (disorot dengan warna biru) ke clipboard Anda

    dempul

  5. Klik Save private Keydan Save public keyuntuk menyimpan kunci Anda ke mana pun Anda memilih (mis. Ke <Home Dir>/putty/ssk-key.ppkdan <Home Dir>/putty/ssh-key.pubmasing - masing) sebelum melanjutkan ke bagian berikutnya

Mendaftarkan Kunci Di BitBucket

  1. Masuk ke akun BitBucket Anda , dan di kanan atas, klik gambar profil Anda dan klikSettings
  2. Buka SSH Keystab di sidebar kiri
  3. Klik Add SSH Key, beri nama, dan tempel kunci publik yang Anda salin pada langkah 4 di bagian sebelumnya

Itu dia! Anda sekarang harus dapat mendorong / menarik ke repositori pribadi BitBucket Anda. Kunci Anda tidak hanya untuk Git, banyak layanan menggunakan kunci ssh untuk mengidentifikasi pengguna, dan bagian terbaiknya adalah Anda hanya memerlukannya. Jika Anda kehilangan kunci (misalnya saat mengganti komputer), cukup ikuti langkah-langkah untuk membuat dan mendaftarkan yang baru.

Catatan samping: Membuat Kunci SSH menggunakan CLI

Ikuti saja tutorial ini

woojoo666
sumber
menggunakan Paste the BitBucket repository url ([email protected]/<username>/<reponame>.git)akan memaksa Anda untuk menambahkan kunci ssh. Jika Anda belum memiliki yang sudah ada, akan merepotkan.
Alex Kyriakidis
1
ya, BitBucket sebagian besar untuk repositori pribadi, jadi Anda memerlukan kunci ssh untuk memulai. Jangan khawatir, ini tidak seburuk kelihatannya! Saya menambahkan tutorial singkat ke jawaban saya
woojoo666
3
Mengapa kalian kesulitan dengan SSH dan kunci publik / pribadi padahal jauh lebih mudah menggunakan HTTPS? Dalam Clonedialog, alihkan tarik-turun kanan atas dari SSH ke HTTPS dan dapatkan URL:https://bitbucket.org/<reponame>.git
Dan Dar3
1
@ DanDar3 Ya, terima kasih, ini menyelamatkan saya dari banyak masalah.
Excrubulent
1
@ DanDar3 wow itu jauh lebih mudah, saya memperbarui jawabannya, terima kasih!
woojoo666
24

Sebenarnya ada solusi yang lebih sederhana (hanya untuk versi Mac). Hanya empat langkah:

  1. Klik kanan pada repositori dan pilih "Publikasikan ke jarak jauh ..."

SourceTree Publikasikan ke Remote Screeshot

  1. Jendela berikutnya akan meminta Anda untuk mempublikasikan (github, bitbucket, dll), dan kemudian Anda selesai.
  2. Tautkan repositori jarak jauh
  3. Dorong
David
sumber
Ini pasti baru. Saya sudah lama tidak menggunakan repositori, jadi saya akan mencobanya.
cma0014
3
Sebenarnya saya telah memeriksa bahwa SourceTree hanya di versi Mac, bukan di Windows. :(
David
1
Ya, saya telah memeriksa bahwa itu membuat repo di remote, tetapi kemudian tidak menautkan set di remote repositori lokal. Ini akan menjadi peningkatan yang bagus untuk versi berikutnya
David
1
@bauerMusic ini terjadi pada saya juga dengan jendela "dalam proses". Tapi tidak belakangan ini. Meskipun seperti yang Anda katakan ... ada yang gagal dengan fitur ini. Itu tidak tertaut ke repo jarak jauh baru seperti yang kita semua harapkan. Terlepas dari semua itu, SourceTree adalah manajer GIT terbaik untuk Mac yang saya temukan.
David
1
Ini benar-benar berfungsi sempurna untuk saya, itu membuat repo dan menghubungkannya dengan lokal dan jarak jauh, mungkin sejak 2016 mereka memperbaikinya
Kross
10

Seperti yang diilustrasikan dalam video ini , membuat repo online terlebih dahulu adalah cara yang biasa dilakukan.

The SourceTree Catatan Rilis lakukan menyebutkan untuk SourceTree 1.5 +:

Mendukung pembuatan repositori baru di bawah akun tim / organisasi di Bitbucket.

Jadi, meskipun tidak ada fitur "penerbitan", Anda dapat membuat repo online Anda dari SourceTree.

Entri blog " SourceTree untuk Windows 1.2 ada di sini " (Sept 2013) juga menyebutkan:

Sekarang Anda dapat mengkonfigurasi akun Bitbucket, Stash, dan GitHub Anda di SourceTree dan langsung melihat semua repositori Anda di layanan tersebut. Gandakan dengan mudah, buka proyek di web, dan bahkan buat repositori baru di layanan jarak jauh tanpa harus meninggalkan SourceTree .
Anda akan menemukannya di menu di bawah View> Show Hosted Repositories, atau menggunakan tombol baru di kanan bawah panel bookmark.

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

VonC
sumber
Saya akan mencoba ini ketika saya pulang, Terima kasih!
cma0014
Ya, tetapi membuat folder dev lokal sebagai repo terbukti sulit.
Ben Racicot
3

Saya menggunakan ini dan itu berhasil dengan baik untuk saya. Jika direktori Anda adalah

"repo" dan proyek Anda adalah "halo", salin proyek di sana

cd /path/to/my/repo

Inisialisasi direktori Anda

git init

Panggung proyek

git add hello

melakukan proyek

git commit

Tambahkan konfigurasi menggunakan email dan nama pengguna yang Anda gunakan di Bitbucket

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

Tambahkan komentar ke proyek

git commit -m 'comment'

dorong proyek sekarang

git push origin master

Lihat masternya

git checkout master
bademba
sumber
3

Bitbucket mendukung REST API yang dapat Anda gunakan untuk membuat repositori Bitbucket secara terprogram.

Dokumentasi dan sampel cURL tersedia di sini: 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" }'

Di bawah Windows, curl tersedia dari shell Git Bash.

Dengan menggunakan metode ini, Anda dapat dengan mudah membuat skrip untuk mengimpor banyak repo dari server git lokal ke Bitbucket.

Joe Savage
sumber
1

Siapkan Repositori Bitbucket (Command Line dengan Mac)

Buat APLIKASI Baru mulai dari repositas lokal:

  1. Terminal -> cd ~ / Documents (Tempel jalur direktori dasar APLIKASI Anda)
  2. Terminal -> mkdir (buat direktori dengan)
  3. Terminal -> cd (ubah direktori dengan direktori)
  4. BitBucket A / C -> buat repositori di akun bitBucket
  5. Xcode -> buat proyek xcode baru dengan nama yang sama
  6. Terminal -> git init (menginisiasi repo kosong)
  7. Terminal -> git remote add origin (Mis. Https: //[email protected]/app/app.git )
  8. Terminal -> git add.
  9. Terminal -> status git
    1. Terminal -> git commit -m "IntialCommet"
    2. Terminal -> master asal git push

Buat repositori klon APPLICATION:

  1. Terminal -> mkdir (buat direktori dengan)
  2. Terminal -> cd (ubah direktori dengan direktori)
  3. Terminal -> git clone (Mis. Https: //[email protected]/app/app.git )
  4. Terminal -> cd
  5. Terminal -> status git (Tampilkan status file edit / diperbarui)
  6. Terminal -> master asal git pull
  7. Terminal -> git add.
  8. Terminal -> master asal git push
Shrikant Tanwade
sumber
1

Solusi Lain Untuk Pengguna Windows:

Ini menggunakan Github sebagai jembatan untuk menuju Bitbucket, karena kurangnya penerbitan langsung dari aplikasi Windows Sourcetree.

  1. Muat repo lokal Anda ke aplikasi desktop Github.
  2. Publikasikan repo sebagai repo pribadi (untuk privasi - jika diinginkan) dari aplikasi desktop Github ke akun Github Anda.
  3. Buka akun pribadi / tim Anda di situs Bitbucket
  4. Buat repo Bitbucket baru dengan mengimpor dari Github.
  5. Hapus repo di Github.

Setelah ini selesai, semuanya akan dimuat ke Bitbucket. Remote lokal Anda mungkin perlu dikonfigurasi untuk mengarah ke Bitbucket sekarang.

David Ruiz
sumber
0

GIT melayani tujuannya dengan baik untuk kontrol versi dan proyek tim jika komit dan cabang dipertahankan dengan baik.
Langkah 1: Gandakan repo lokal Anda menggunakan cli seperti yang disebutkan oleh jawaban di atas

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

Langkah 2: Anda dapat mengikuti salah satu langkah di atas untuk mendorong / menarik karya Anda. Cara mudahnya adalah dengan menggunakan git gui. Ini menyediakan Antarmuka Grafis sehingga mudah untuk melakukan stage (add) / unstage, commit / uncommit dan push / pull. Pemula dapat dengan mudah memahami proses git.

$ git gui

(ATAU)
Langkah 2: Seperti disebutkan di atas. Kode Cli akan melakukan pekerjaan itu.

Status
$ git $ git add [nama_file]
$ git commit _m "[Pesan komit"] "
$ git push origin master / nama_cabang

Raj sree
sumber
0

Sebagai pembaruan untuk jawaban Joe , di mana Anda dapat membuat skrip pembuatan repositori menggunakan API, hanya panggilan API yang saya butuhkan yang berbeda. Ini mungkin karena kami menggunakan server bitbucket, dan bukan cloud bitbucket.

Untuk membuat repo baru dalam sebuah proyek di server kami, saya menggunakan:

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"}'

di mana USER, PASSWORD, SERVER, PROJECTNAMEdan REPONAMEitu tentu saja / nilai-nilai yang diperlukan yang diinginkan.

Panggilan tersebut didokumentasikan dalam referensi API .

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

Buat repositori baru. Membutuhkan proyek yang ada di mana repositori ini akan dibuat. Parameter yang akan digunakan hanyalah name dan scmId.

Pengguna yang diautentikasi harus memiliki izin PROJECT_ADMIN agar proyek konteks dapat memanggil sumber daya ini.

Baldrickk
sumber
0

(Linux / WSL setidaknya) Dari browser di bitbucket.org, buat repo kosong dengan nama yang sama dengan repo lokal Anda, ikuti petunjuk yang diusulkan oleh bitbucket untuk mengimpor repo lokal (dua perintah untuk mengetik).

Adhémar Patamob
sumber