2014-06-18 22 views
5

Tôi đang chạy Git trên OSX Mavericks và hiện chưa có sự cố. Điều gì đã thay đổi là tôi đang cố gắng sử dụng hai tài khoản Github trên các bản repos khác nhau trên cùng một máy tính.Làm cách nào để lưu trữ thông tin đăng nhập cho nhiều tài khoản Github?

Vấn đề là osx-keychain đang lưu trữ thông tin đăng nhập từ tài khoản đầu tiên của tôi. Đó là điều tuyệt vời trước đây, nhưng bất cứ khi nào tôi cố gắng cam kết hoặc đẩy từ tài khoản Github mới của tôi, nó được mặc định sử dụng giá trị tên người dùng và mật khẩu của keychain, và bỏ qua các tập tin cấu hình cục bộ (hoặc thậm chí toàn cục git config!).

Tôi có thể xóa khóa osx và sau đó đẩy vào tài khoản mới, nhưng khi thực hiện điều này, nó sẽ tạo một móc khóa mới cho tài khoản đó, đặt nó trở lại hình vuông: có thể đẩy vào tài khoản phụ của tôi các giá trị keychain mới nhưng bị khóa khỏi tài khoản chính của tôi.

Vì vậy, tôi bị kẹt trong tình huống "hoặc" và tôi thực sự hy vọng có giải pháp "cả hai". Bất kỳ giúp đỡ?

P.S. Tôi đã thử this solution và không hoạt động vì osx-keychain dường như ghi đè chức năng Nhận dạng SSH

+0

[Bạn có thể định cấu hình điều này trong tệp cấu hình git chung của mình như tôi đã nêu ở đây.] (Http://stackoverflow.com/a/31351376/1922144) – davidcondrey

Trả lời

3

Nếu bạn đang sử dụng url https, thì the solution you mention sẽ không có bất kỳ tác dụng nào: nó dành cho nhiều khóa ssh.

https Đối, this question đề cập đến một số giải pháp, bao gồm:

  • By gitcredentials mặc định chỉ xem xét các tên miền.
    Nếu bạn muốn git xem xét đường dẫn đầy đủ (ví dụ: nếu bạn có nhiều tài khoản GitHub), đặt biến useHttpPath thành true, như được mô tả tại gitcredentials.
    Lưu ý rằng việc thay đổi cài đặt này sẽ yêu cầu thông tin xác thực của bạn một lần nữa cho từng URL.

Theo mặc định, Git không coi thành phần "đường dẫn" của URL http có giá trị phù hợp thông qua người giúp bên ngoài.
Điều này có nghĩa là thông tin đăng nhập được lưu trữ cho https://example.com/foo.git cũng sẽ được sử dụng cho https://example.com/bar.git.
Nếu bạn muốn phân biệt các trường hợp này, hãy đặt tùy chọn này thành true.

Ngoài ra, hãy chắc chắn url https incudes tên tài khoản của bạn:

git clone https://[email protected]/auser/aprojectX 
git clone https://[email protected]/auser/aprojectY 

Điều đó sẽ giúp một helper chứng để biết chiếm/mật khẩu cần tìm kiếm.

Cuối cùng, xác lập mà bạn đang sử dụng để truy cập vào một dịch vụ lưu trữ repo git không có gì để làm với:

git config (--global) user.name 

Đó cấu hình cuối cùng là chỉ để thiết lập các tác giả kết hợp với địa phương cam kết của bạn.
Không phải để chọn tài khoản được sử dụng để truy cập trang web lưu trữ từ xa.

Các vấn đề liên quan