Làm cách nào để tôi đẩy một repo cục bộ lên Bitbucket bằng SourceTree mà không cần tạo repo trên bitbucket trước?


116

Có cách nào để nhập các kho git cục bộ của tôi vào SourceTree và đẩy chúng vào tài khoản Bitbucket của tôi, có các kho lưu trữ mới giống với các kho lưu trữ cục bộ của tôi được tạo trên tài khoản của tôi không? Hay tôi phải thực hiện một repo trực tuyến trước và đẩy đến đó? Github có một cách để xuất bản các repo cục bộ của bạn trực tiếp từ ứng dụng khách của nó và nó sẽ tự động tạo nó khi bạn xuất bản, nhưng nó có giới hạn các repo riêng tư. Tôi chỉ đang làm bài tập về nhà nên không có lý do gì để nó được công khai, do đó, tại sao tôi lại cố gắng sử dụng bitbucket.

Câu trả lời:


152

(cập nhật vào ngày 29 tháng 3 năm 2019 để sử dụng https thay vì ssh, vì vậy bạn không cần sử dụng khóa ssh)

Có vẻ như đối với BitBucket, trước tiên bạn phải tạo một repo trực tuyến. Sử dụng hướng dẫn từ Atlassian , chỉ cần tạo một kho lưu trữ BitBucket mới, sao chép url kho lưu trữ vào khay nhớ tạm và sau đó thêm kho lưu trữ đó làm điều khiển từ xa mới vào kho lưu trữ cục bộ của bạn (đầy đủ các bước bên dưới):

Nhận URL Repo

  1. trong kho BitBucket của bạn, chọn "Sao chép" ở trên cùng bên phải
  2. chọn "HTTPS" thay vì "SSH" ở trên cùng bên phải của hộp thoại
  3. nó sẽ hiển thị url repo của bạn ở dạng git clone <repository url>

Thêm từ xa bằng CLI

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

Thêm từ xa bằng SourceTree

  1. Kho lưu trữ> Thêm từ xa ...
  2. Dán url kho lưu trữ BitBucket ( https://bitbucket.org/<username>/<reponame>.git)

Phương pháp cũ: Tạo và đăng ký khóa SSH

(phương pháp này là nếu bạn sử dụng url ssh thay vì url https, trông giống như vậy ssh://git@bitbucket.org/<username>/<reponame>.git. Tôi khuyên bạn chỉ nên sử dụng https)

BitBucket rất phù hợp cho các kho lưu trữ riêng tư, nhưng bạn sẽ cần thiết lập khóa ssh để cho phép máy tính hoạt động với tài khoản BitBucket của bạn. May mắn thay, Sourcetree làm cho nó tương đối đơn giản:

Tạo khóa trong SourceTree:

  1. Trong Tools> Options, hãy đảm bảo SSH Client:được đặt ở PuTTY/Plinkdưới Generaltab
  2. Chọn Tools>Create or Import SSH Keys
  3. Trong cửa sổ bật lên, hãy nhấp Generatevà di chuyển chuột xung quanh để cung cấp tính ngẫu nhiên cho trình tạo khóa
  4. Bạn sẽ nhận được một cái gì đó giống như những gì được hiển thị trong ảnh chụp màn hình bên dưới. Sao chép khóa công khai (được đánh dấu màu xanh lam) vào khay nhớ tạm của bạn

    bột bả

  5. Nhấp Save private KeySave public keyđể lưu khóa của bạn vào bất kỳ nơi nào bạn chọn (ví dụ: đến <Home Dir>/putty/ssk-key.ppk<Home Dir>/putty/ssh-key.pubtương ứng) trước khi chuyển sang phần tiếp theo

Đăng ký khóa trong BitBucket

  1. Đăng nhập vào tài khoản BitBucket của bạn và ở trên cùng bên phải, nhấp vào ảnh hồ sơ của bạn và nhấp vàoSettings
  2. Chuyển đến SSH Keystab ở thanh bên trái
  3. Nhấp Add SSH Key, đặt tên cho nó và dán khóa công khai bạn đã sao chép ở bước 4 của phần trước

Đó là nó! Bây giờ bạn có thể đẩy / kéo đến các kho lưu trữ riêng tư của BitBucket. Khóa của bạn không chỉ dành cho Git, nhiều dịch vụ sử dụng khóa ssh để xác định người dùng và phần tốt nhất là bạn chỉ cần một khóa. Nếu bạn từng bị mất chìa khóa (ví dụ: khi thay đổi máy tính), chỉ cần làm theo các bước để tạo và đăng ký khóa mới.

Chú thích bên: Tạo khóa SSH bằng CLI

Chỉ cần làm theo hướng dẫn này


việc sử dụng Paste the BitBucket repository url (git@bitbucket.org/<username>/<reponame>.git)sẽ buộc bạn phải thêm khóa ssh. Trong trường hợp bạn chưa có một cái hiện có, sẽ là một nỗi đau.
Alex Kyriakidis

1
yea BitBucket chủ yếu dành cho các kho lưu trữ riêng tư, vì vậy bạn sẽ cần một khóa ssh để bắt đầu. Đừng lo lắng, nó không tệ như vẻ ngoài của nó! Tôi đã thêm một hướng dẫn nhanh chóng để trả lời của tôi
woojoo666

3
Tại sao các bạn lại gặp khó khăn với SSH và khóa công khai / riêng tư trong khi việc sử dụng HTTPS dễ dàng hơn nhiều? Trong Clonehộp thoại, chuyển trình đơn thả xuống trên cùng bên phải từ SSH sang HTTPS và nhận URL:https://bitbucket.org/<reponame>.git
Dan Dar3

1
@ DanDar3 Vâng, cảm ơn bạn, điều này đã giúp tôi tiết kiệm rất nhiều rắc rối.
Độc đáo

1
@ DanDar3 wow điều đó dễ dàng hơn rất nhiều, tôi đã cập nhật câu trả lời, cảm ơn!
woojoo666

24

Trên thực tế có một giải pháp đơn giản hơn (chỉ trên phiên bản Mac). Chỉ bốn bước:

  1. Nhấp chuột phải vào kho và chọn "Xuất bản lên từ xa ..."

SourceTree Publish lên Remote Screeshot

  1. Cửa sổ tiếp theo sẽ yêu cầu bạn xuất bản (github, bitbucket, v.v.), và sau đó bạn đã hoàn tất.
  2. Liên kết kho lưu trữ từ xa
  3. Đẩy

Cái này phải mới. Tôi đã không thực sự sử dụng kho lưu trữ trong một thời gian, vì vậy tôi sẽ cho nó một chút.
cma0014

3
Trên thực tế, tôi đã kiểm tra điều đó chỉ có trên phiên bản SourceTree dành cho Mac, không phải trên Windows. :(
David

1
Vâng, tôi đã kiểm tra rằng nó tạo kho lưu trữ trên điều khiển từ xa, nhưng sau đó không liên kết đặt nó trên điều khiển từ xa của kho lưu trữ cục bộ. Nó sẽ là một bản nâng cấp tốt cho các phiên bản tiếp theo
David

1
@bauerMusic điều này cũng xảy ra với tôi với cửa sổ "đang xử lý". Nhưng gần đây thì không. Mặc dù như bạn đã nói ... có gì đó không thành công với tính năng này. Nó không liên kết với repo từ xa mới như tất cả chúng ta mong đợi. Bất chấp tất cả, SourceTree là trình quản lý GIT tốt nhất cho Mac mà tôi tìm thấy.
David

1
Nó thực sự hoạt động hoàn hảo đối với tôi, nó tạo repo và liên kết nó với cục bộ và từ xa, có thể kể từ năm 2016 họ cải thiện nó
Kross

10

Như video này minh họa , tạo repo trực tuyến trước tiên là cách thông thường để thực hiện.

Các SourceTree Ghi chú Phát hành làm đề cập đến cho SourceTree 1.5 +:

Hỗ trợ tạo kho mới theo tài khoản nhóm / tổ chức trong Bitbucket.

Vì vậy, mặc dù không có tính năng "xuất bản", bạn có thể tạo repo trực tuyến của mình từ SourceTree.

Bài đăng trên blog " SourceTree cho Windows 1.2 ở đây " (tháng 9 năm 2013) cũng đề cập đến:

Giờ đây, bạn có thể định cấu hình các tài khoản Bitbucket, Stash và GitHub của mình trong SourceTree và xem ngay tất cả kho lưu trữ của bạn trên các dịch vụ đó. Dễ dàng sao chép chúng, mở dự án trên web và thậm chí tạo kho lưu trữ mới trên dịch vụ từ xa mà không cần rời khỏi SourceTree .
Bạn sẽ tìm thấy nó trong menu bên dưới View> Show Hosted Repositories hoặc sử dụng nút mới ở dưới cùng bên phải của bảng dấu trang.

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


Tôi sẽ thử cái này khi tôi về nhà, Cảm ơn!
cma0014

Vâng, nhưng việc tạo thư mục dành cho nhà phát triển cục bộ trở thành kho lưu trữ đang tỏ ra khó khăn.
Ben Racicot

3

Tôi đã sử dụng cái này và nó hoạt động tốt cho tôi. Nếu thư mục của bạn là

"repo" và dự án của bạn là "xin chào" sao chép dự án đó

cd /path/to/my/repo

Khởi tạo thư mục của bạn

git init

Giai đoạn dự án

git add hello

cam kết dự án

git commit

Thêm cấu hình bằng email và tên người dùng bạn đang sử dụng trong Bitbucket

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

Thêm nhận xét vào dự án

git commit -m 'comment'

đẩy dự án ngay bây giờ

git push origin master

Kiểm tra ra khỏi tổng thể

git checkout master

3

Bitbucket hỗ trợ API REST mà bạn có thể sử dụng để tạo kho lưu trữ Bitbucket theo chương trình.

Tài liệu và mẫu cURL có sẵn tại đây: 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" }'

Trong Windows, curl có sẵn từ trình bao Git Bash.

Sử dụng phương pháp này, bạn có thể dễ dàng tạo một tập lệnh để nhập nhiều kho lưu trữ từ máy chủ git cục bộ sang Bitbucket.


1

Thiết lập Kho lưu trữ Bitbucket (Dòng lệnh với Mac)

Tạo ỨNG DỤNG Mới từ bắt đầu với tính đại diện cục bộ:

  1. Terminal -> cd ~ / Documents (Dán đường dẫn thư mục cơ sở APPLICATION của bạn)
  2. Terminal -> mkdir (tạo thư mục với)
  3. Terminal -> cd (thay đổi thư mục bằng thư mục)
  4. BitBucket A / C -> tạo kho lưu trữ trên tài khoản bitBucket
  5. Xcode -> tạo dự án xcode mới với cùng tên
  6. Terminal -> git init (khởi chạy repo trống)
  7. Terminal -> git remote add origin (Ví dụ : https: //app@bitbucket.org/app/app.git )
  8. Terminal -> git add.
  9. Terminal -> trạng thái git
    1. Terminal -> git commit -m "IntialCommet"
    2. Terminal -> git push origin master

Tạo kho lưu trữ bản sao ứng dụng:

  1. Terminal -> mkdir (tạo thư mục với)
  2. Terminal -> cd (thay đổi thư mục bằng thư mục)
  3. Terminal -> git clone (Ví dụ : https: //app@bitbucket.org/app/app.git )
  4. Thiết bị đầu cuối -> cd
  5. Trạng thái đầu cuối -> git (Hiển thị trạng thái tệp đã chỉnh sửa / cập nhật)
  6. Terminal -> git pull origin master
  7. Terminal -> git add.
  8. Terminal -> git push origin master

1

Một giải pháp khác cho người dùng Windows:

Điều này sử dụng Github như một cầu nối để truy cập Bitbucket, do thiếu xuất bản trực tiếp từ ứng dụng Windows Sourcetree.

  1. Tải repo cục bộ của bạn vào ứng dụng Github dành cho máy tính để bàn.
  2. Xuất bản repo dưới dạng repo riêng tư (để bảo mật - nếu muốn) từ ứng dụng Github dành cho máy tính để bàn vào tài khoản Github của bạn.
  3. Mở tài khoản cá nhân / nhóm của bạn trên trang web của Bitbucket
  4. Tạo repo Bitbucket mới bằng cách nhập từ Github.
  5. Xóa repo trong Github.

Sau khi hoàn tất, mọi thứ sẽ được tải vào Bitbucket. Điều khiển từ xa cục bộ của bạn có thể sẽ cần được định cấu hình để trỏ đến Bitbucket ngay bây giờ.


0

GIT phục vụ tốt cho mục đích kiểm soát phiên bản và các dự án nhóm nếu các cam kết và các nhánh được duy trì đúng cách.
Bước 1: Sao chép repo cục bộ của bạn bằng cách sử dụng cli như đã đề cập trong các câu trả lời ở trên

$ cd [path_to_repo]
$ git thêm origin ssh từ xa: //git@bitbucket.org//.git
$ git push -u origin --all

Bước 2: Bạn có thể làm theo bất kỳ bước nào ở trên để đẩy / kéo tác phẩm của mình. Cách dễ dàng là sử dụng git gui. Nó cung cấp Giao diện đồ họa để dễ dàng phân đoạn (thêm) / loại bỏ, cam kết / bỏ ghi chú và đẩy / kéo. Người mới bắt đầu có thể dễ dàng hiểu quy trình git.

$ git gui

(HOẶC)
Bước 2: Như đã nói ở trên. Mã Cli sẽ thực hiện công việc.

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


0

Cập nhật câu trả lời của Joe , trong đó bạn có thể tạo kịch bản cho việc tạo kho lưu trữ bằng API, chỉ có lệnh gọi API mà tôi cần là khác. Điều này có thể là do chúng tôi đang sử dụng máy chủ bitbucket chứ không phải đám mây bitbucket.

Để tạo một repo mới trong một dự án trên máy chủ của chúng tôi, tôi đã sử dụng:

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

nơi USER, PASSWORD, SERVER, PROJECTNAMEREPONAME là của khóa học / giá trị được yêu cầu mong muốn.

Cuộc gọi được ghi lại trong tài liệu tham khảo API .

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

Tạo một kho lưu trữ mới. Yêu cầu một dự án hiện có trong đó kho lưu trữ này sẽ được tạo. Các tham số duy nhất sẽ được sử dụng là tên và scmId.

Người dùng được xác thực phải có quyền PROJECT_ADMIN để dự án ngữ cảnh gọi tài nguyên này.


0

(Ít nhất là Linux / WSL) Từ trình duyệt tại bitbucket.org, tạo một kho trống có cùng tên với kho lưu trữ cục bộ của bạn, làm theo hướng dẫn do bitbucket đề xuất để nhập kho lưu trữ cục bộ (hai lệnh để nhập).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.