2011-11-15 42 views
17

Tôi đã tìm kiếm một giải pháp với Bitbucket và XCode.Bitbucket + XCode 4.2 + Git

Như mọi người đều biết, XCode 4.2 đi kèm với hỗ trợ git. Tôi đã tạo một tài khoản bitbucket và tôi muốn thúc đẩy những thay đổi của tôi để kho của tôi,

Tôi đã theo hướng dẫn này https://confluence.atlassian.com/display/BITBUCKET/Use+the+SSH+protocol+with+Bitbucket

Tuy nhiên đây là vấn đề tôi đang phải đối mặt. Khi tôi đang ở trong tổ chức - kho phần tại XCode, tôi đi đến thư mục điều khiển từ xa của tôi và tạo ra một kho lưu trữ.

ssh: //[email protected]/username/myrepo.git

Tuy nhiên khi tôi hỏi tên và mật khẩu, những cái tôi cung cấp như tên người dùng và mật khẩu bị lỗi. Tôi cũng đã thử với git như một người dùng nhưng không may mắn.

CẬP NHẬT:

Tôi đã tạo tệp ~/.ssh/config nơi tôi đã thêm cấu hình cụ thể cho bitbucket.

Host bitbucket.org 
HostName bitbucket.org 
IdentityFile ~/.ssh/bitbucket 
User username 

Tôi đã thử nghiệm nó với ssh -T [email protected] và Nó hoạt động, nó được xác thực.

Tuy nhiên, khi tôi kiểm tra điều này với XCode tôi nhận được lỗi sau. "Xác thực không thành công do tên hoặc mật khẩu không đúng."

Tôi biết tôi đang thiếu thứ gì đó ở đây.

CẬP NHẬT 2:

Tôi đã giải quyết vấn đề nhưng chỉ từ dòng lệnh, không phải từ XCode. tôi sẽ gửi giải pháp của tôi sau này nhưng cảm thấy miễn phí nếu bạn có một cách để làm điều đó từ XCode

Cảm ơn

Trả lời

17

Nó làm việc cho tôi bằng cách sử dụng URI HTTPS, nhưng tôi cần phải xóa tên người dùng của mình khỏi nó. Ví dụ thay đổi:

https://[email protected]/username/myrepo.git

để

https://bitbucket.org/username/myrepo.git

sau đó cung cấp tên đăng nhập và mật khẩu của bạn khi được nhắc.

+0

2 ngày, cảm ơn bạn. cuối cùng tôi đã làm điều đó :) – kemdo

+0

Mặc định cho tôi là ssh: // git @ bitbucket .... và tôi phải thay đổi nó thành https: // bitbucket ... Cảm ơn sự giúp đỡ của bạn –

0

Bạn phải thêm khóa SSH tạo tài khoản của bạn.

tôi sử dụng GitHub, nhưng BitBucket cơ bản là một bản sao của nó để làm thủ tục tương tự áp dụng:

cat ~/.ssh/id_rsa.pub | pbcopy 

Bây giờ hãy thử tái kết nối.

+0

Cảm ơn Máy xay sinh tố, nhưng tôi đã dán các phím vào bitbucket. Tuy nhiên, tôi nhận thấy rằng tôi có nhiều khóa ssh, vì vậy tôi đã cập nhật câu hỏi của mình. – raul782

+1

chỉ là một gợi ý nhỏ, không sử dụng mèo ở đây. pbcopy <~/.ssh/id_rsa.pub – Frizi

0

Ok Có vẻ như tôi không thể thực hiện thông qua ứng dụng XCode.

Tuy nhiên, dòng lệnh là cách duy nhất tôi quản lý để đẩy các thay đổi của mình và XCode chỉ giúp tôi đặt kho lưu trữ từ xa và thêm thông tin đăng nhập.

Cuối cùng những gì tôi đã chỉ cần làm là:

$git push myrepo master 

Và tôi nhận được tin nhắn thành công:

Counting objects: 7, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (4/4), done. 
Writing objects: 100% (4/4), 360 bytes, done. 
Total 4 (delta 3), reused 0 (delta 0) 
remote: bb/acl: username is allowed. accepted payload. 
To ssh://[email protected]/username/myrepo.git 
123abcd..5a12a67 master -> master 
4

tôi đã có thể sử dụng giao diện người dùng XCode bằng cách sử dụng URL https và nhập tên người dùng và mật khẩu bitbucket của tôi khi được nhắc.

14

Xóa tên người dùng không hoạt động đối với tôi. Nhưng tôi đã có thể giải quyết vấn đề này bằng cách thêm mật khẩu của tôi như thế này để các URL:

https://username:[email protected]/username/myrepo.git

+0

Điều này cũng làm việc cho tôi, nhưng tôi tự hỏi liệu nó có an toàn không. Tôi nghi ngờ Xcode lưu trữ mật khẩu của tôi ở đâu đó trong văn bản thuần túy ngay bây giờ. – icant

+2

Tôi mật khẩu bảo vệ mac :) –

+0

Điều này làm việc cho tôi. Cảm ơn thông tin này. – 1amtoo1337

1

Bạn có thể giải quyết vấn đề này trong XCode mà không đi đến dòng lệnh. Bạn có mọi thứ đúng trong câu hỏi của mình nhưng bạn đã đặt sai URL.

Nó nên là: [email protected]: username/myrepo.git

Thay vì những gì bạn có: ssh: //[email protected]/username/myrepo.git

+0

SSH hữu ích nếu xác minh hai bước được bật. –

0

tôi biết đã có một số câu trả lời, nhưng tôi không thể làm cho nó hoạt động cho tôi cho đến một giờ, vì vậy có lẽ tôi đang giúp đỡ ai đó ngoài kia.

Giải pháp của tôi chỉ đơn giản là thêm tên người dùng của tôi vào https://bitbucket.org/USERNAME/PROJECT_NAME/admin/access với tư cách quản trị viên, vì vậy, tôi chỉ có thể nhập Xcode là URL https://[email protected]/USERNAME/PROJECT_NAME.git bằng tên người dùng và mật khẩu của mình.

QUAN TRỌNG: USERNAME là viết tắt của người dùng HOSTING dự án, vì vậy nếu bạn đang làm việc trên repo của đồng nghiệp của bạn, đây sẽ là tên người dùng của anh ấy.

Hy vọng điều này sẽ hữu ích.

0

Tôi đã có thể nhận XCode để chấp nhận và sử dụng khóa SSH của tôi trước đây tôi đã thiết lập với Bitbucket bằng cách chỉ định git làm tên người dùng (trong giao diện người dùng XCode), và đặt mật khẩu của tôi và tên người dùng Bitbucket của tôi vào URL của repo.

Phải gây rối với nó một vài lần trước khi nó bắt đầu hoạt động.

2

Dưới đây là một nỗ lực tại một câu trả lời đầy đủ ...

Tạo một khóa bitbucket nếu bạn chưa sử dụng ssh-keygen. Chọn một tên phù hợp, giống như bitbucket_rsa giả sử bạn tạo khóa rsa. Đặt nó trong ~/.ssh/.

Một khi điều này được tạo ra, thêm:

Host bitbucket.org 
HostName bitbucket.org 
IdentityFile ~/.ssh/<bitbucket key filename above> 

vào ~/.ssh/config.

Tiếp theo, thêm khóa này vào giao diện web Bitbucket bằng công cụ Manage Account > SSH Keys. Để có được chìa khóa công vào sử dụng clipboard của bạn:

$ pbcopy < ~/.ssh/<bitbucket key filename above>.pub 

Cuối cùng, hãy chắc chắn rằng bạn đang sử dụng địa chỉ ssh được cung cấp bởi Bitbucket vs https một.Chúng trông giống như:

[email protected]:accountname/repositoryname.git 

và có thể truy cập bằng cách thả xuống có nhãn HTTPS (hiện tại ở thanh bên phải).

Xcode (bao gồm Xcode 5) bây giờ sẽ hoạt động, như sẽ git từ dòng lệnh.

3

iOS 9.2, Xcode 7.2, ARC kích hoạt

Dường như mỗi khi tôi bắt đầu một dự án Xcode mới, tôi phải bò lại bài này và những người khác như nó để đặt lại với nhau một giải pháp để có được tôi * .git repository được thiết lập cho dự án mới. Mục tiêu của tôi với câu trả lời này là cập nhật và biên dịch một giải pháp đầy đủ. Nhờ tất cả những người đóng góp ban đầu, đặc biệt là "xe đẩy".

Đối với một mô tả rất kỹ lưỡng, vui lòng tham khảo link này: http://www.appcoda.com/git-source-control-in-xcode/

1. Tạo dự án Xcode mới của bạn như bình thường, nhưng chắc chắn rằng bạn cho phép kiểm soát nguồn, xem dưới đây:

Nếu bạn không làm điều này, sau đó đi vào đây để xem làm thế nào để làm điều đó khi dự án đã được tạo ra: https://stackoverflow.com/a/17790306/4018041

Enable source control when creating your project.

2. Từ thanh công cụ hàng đầu chọn Control Source -> "chi nhánh hiện nay" -> Configure "tên dự án của bạn", xem dưới đây:

Configure the source control

3. Chọn Remotes từ tab menu cấu hình , nhấn phím "+" và chọn "Add từ xa", xem dưới đây:

Add remote source

4. Bạn sẽ được nhắc nhở để nhập tên kho và nhập địa chỉ cho r epository, xem dưới đây:

Ở đây bạn sẽ sử dụng các hướng dẫn "xe đẩy" cung cấp ở đây: https://stackoverflow.com/a/9271409/4018041

https://bitbucket.org/username/myrepo.git 

Trong ví dụ trên, "myrepo" là tên của kho tại bitbucket.org; nhưng tại địa phương bạn có thể gán bất kỳ tên nào bạn muốn, tên mặc định là "origin" như bạn thấy trong hình bên dưới.

Enter a repository name and address

5. Nhập tên người dùng và mật khẩu mà bạn sử dụng để truy cập vào tài khoản của bạn bitbucket.org, xem dưới đây:

tên người dùng của bạn rất có thể là e-mail bạn dùng để đăng ký .

Credentials for the repository

6. Sau khi nhấn OK và nếu các thông tin được chấp nhận, sau đó bạn sẽ nhận được một thông điệp dấu kiểm màu xanh lá cây. Đó là nó!

Sau này, bạn có thể Kiểm soát nguồn-> Đẩy địa phương * .git của bạn vào kho lưu trữ bitbucket.org, được đặt tên cục bộ là "origin" (mặc định).

Push local *.git repository to origin

Một văn bản tương tự với một dấu kiểm màu xanh lá cây sẽ xuất hiện khi đẩy thành công lên đến kho bitbucket.org.

Lưu ý: Đảm bảo bạn thực hiện thay đổi ban đầu cho dự án để tạo * .git cục bộ của bạn để tạo đúng cách.

Hy vọng điều này sẽ giúp ai đó. Chúc mừng!

+0

Bạn thậm chí có thể đồng bộ hóa với giao thức SSH bằng cách cung cấp URL SSH ([email protected]: username/myrepo.git) ở bước 4. Điều này rất hữu ích nếu xác minh hai bước được bật. –

+0

[Mad Hacker] (http://stackoverflow.com/a/14146625) cho thấy điều này. –

+0

kudos @ serge-k, cảm ơn vì điều này. –