Lệnh kéo Git từ người dùng khác


76

Tôi đang làm việc với bạn của mình về một dự án có mã của dự án đó trên Git. Nếu tôi cần lấy các thay đổi từ máy của bạn mình, tôi có thể lấy các thay đổi đó từ tên người dùng / mật khẩu của mình bằng lệnh sau mà không gặp vấn đề gì không?

git pull https://myusername@github.com/abc/theproject.git

2
Bạn đang cố gắng lấy các thay đổi của bạn mình trực tiếp từ máy của anh ấy mà không cần thông qua GitHub?
Chris

@Chris, Về cơ bản, trang web của chúng tôi được triển khai trên máy của anh ấy. Tôi đã thực hiện một số thay đổi và đẩy nó lên github. Bây giờ tôi muốn triển khai các thay đổi bằng cách kéo từ github khi bạn của tôi hiện đang đi nghỉ.
Mohsin Inayat Khan

Câu trả lời:


162

Lệnh này sẽ giúp lấy từ kho lưu trữ với tư cách là người dùng khác:

git pull https://myusername@github.com/projectfolder/projectname.git master

Đó là một giải pháp thay thế, khi bạn đang sử dụng cùng một máy mà người khác đã sử dụng trước bạn và đã lưu thông tin đăng nhập


1
nó là woks cho tôi!
Alessandro

31

Đang tìm kiếm giải pháp của một vấn đề tương tự. Nhờ câu trả lời được cung cấp bởi Davlet và Cupcake, tôi đã có thể giải quyết vấn đề của mình.

Đăng câu trả lời này ở đây vì tôi nghĩ đây là câu hỏi dự định

Vì vậy, tôi đoán nói chung vấn đề mà những người như tôi gặp phải là phải làm gì khi một repo được sao chép bởi một người dùng khác trên một máy chủ và người dùng đó không còn được liên kết với repo đó nữa.

Làm thế nào để lấy từ repo mà không sử dụng thông tin đăng nhập của người dùng cũ?

Bạn chỉnh sửa tệp .git / config của repo của bạn.

và thay đổi

url = https://<old-username>@github.com/abc/repo.git/

đến

url = https://<new-username>@github.com/abc/repo.git/

Sau khi lưu các thay đổi, từ bây giờ trở đi git pull sẽ kéo dữ liệu trong khi sử dụng thông tin đăng nhập của người dùng mới.

Tôi hy vọng điều này sẽ giúp bất kỳ ai có vấn đề tương tự


13
Tốt hơn nữa: bạn để tên người dùng ra khỏi URL, vì vậy nó sẽ yêu cầu bạn nhập tên người dùng khi kéo.
PLPeeters

1
tôi làm giống vậy. để url ra khỏi url, như vậy thay vì chỉnh sửa trực tiếp: git remote set-url origin git.mycompany.com/scm/myproj.git ... sau đó đảm bảo tất cả người dùng (nhóm linux của họ) đều có quyền truy cập để ghi vào dự án và .git thư mục (nếu không người dùng khác sẽ nhận được một lỗi nói rằng không thể cập nhật .git / HEAD ví dụ như khi họ chạy 'pull git'
armyofda12mnkeys

3

Câu hỏi của bạn hơi không rõ ràng, nhưng nếu những gì bạn đang làm là cố gắng có được những thay đổi mới nhất của bạn mình, thì thông thường những gì bạn của bạn cần làm là đẩy những thay đổi đó lên một repo từ xa (như một repo được lưu trữ trên GitHub) và sau đó bạn tìm nạp hoặc kéo những thay đổi đó từ điều khiển từ xa:

  1. Bạn của bạn đẩy các thay đổi của anh ấy lên GitHub:

    git push origin <branch>
    
  2. Sao chép kho lưu trữ từ xa nếu bạn chưa:

    git clone https://myusername@github.com/abc/theproject.git
    
  3. Tìm nạp hoặc kéo các thay đổi của bạn bè (không cần thiết nếu bạn vừa sao chép ở bước # 2 ở trên):

    git fetch origin
    git merge origin/<branch>
    

    Lưu ý rằng git pulltương tự như thực hiện hai bước trên:

    git pull origin <branch>
    

Xem thêm


Trang web được triển khai trên máy của bạn tôi. Tôi đã thực hiện một số thay đổi trên máy tính của mình và đẩy nó lên github. Bây giờ tôi muốn triển khai các thay đổi bằng cách kéo máy của bạn tôi vì anh ấy đã đi nghỉ.
Mohsin Inayat Khan

@MohsinInayatKhan, sau đó đăng nhập vào máy của bạn bè và thực hiện bước # 3 như tôi đã chỉ ra ở trên, giả sử rằng đó là cách quá trình triển khai của bạn hoạt động . Tại sao trang web của bạn được triển khai trên máy của bạn bè bạn mà không phải trên một số máy chủ sản xuất? Bạn của bạn đang sử dụng loại máy nào, máy tính xách tay? Nếu đúng như vậy, đó sẽ không phải là cách rất an toàn hoặc đáng tin cậy để lưu trữ một trang web doanh nghiệp.

Cảm ơn các bạn đã giúp tôi. Lệnh sau đã làm việc cho tôi. git pull myusername@github.com/abc/theproject.git thạc sĩ
Mohsin Inayat Khan

@MohsinInayatKhan bạn có thể đăng câu trả lời đó.
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.