2010-10-28 38 views
18

Tôi khá mới để git. Tôi có một thiết lập repo trên một máy chủ (A), nơi truy cập thông qua các khóa ssh rsa. Tôi có một vài người dùng ở đó, kể cả bản thân tôi. Bây giờ tôi làm git clone trên máy cục bộ của tôi và nhận bản sao cục bộ, thực hiện thay đổi và push origin master, mọi thứ đều hoạt động tốt.Git Pull: Thay đổi xác thực

Sự cố mà tôi gặp phải là máy chủ thử nghiệm (máy chủ B) của chúng tôi đã thiết lập mọi thứ và những gì tôi muốn làm là kéo các thay đổi mới nhất của tôi lên máy chủ đó. Máy chủ thử nghiệm cũng có nhiều người dùng, cũng như www-data làm chủ sở hữu toàn bộ thư mục (chạy Apache).

Khi đăng nhập thông qua SSH sử dụng tên của tôi, tôi không thể git pull, nói .git bị khóa, vì vậy tôi làm sudo git pull yêu cầu tôi mật khẩu cho người dùng khác (user1). Tôi không biết mật khẩu đó và tôi muốn xóa hoàn toàn người dùng đó, nhưng trước khi tôi thực hiện, tôi phải chuyển git repo trên máy chủ thử nghiệm để kéo các thay đổi bằng cách sử dụng xác thực MY (kovshenin) chứ không phải của người dùng1.

Cách chính xác để làm điều đó là gì? Tôi không muốn loại bỏ mọi thứ và bắt đầu từ một bản sao mới, vì nó có một số thay đổi cục bộ.

Trả lời

34

Sau ba giờ tìm kiếm và phát, tôi đã tự tìm thấy câu trả lời. Chi tiết xác thực được lưu trữ trong tệp .git/config trong cài đặt url trong phần [remote "origin"].

+14

Vâng, bạn có thể sử dụng lệnh 'git remote -v' để hiển thị cấu hình từ xa hiện tại và thực hiện 'git remote set-url ssh: // you @ location ...' Không cần chỉnh sửa trực tiếp tệp cấu hình – tvlooy

+2

Tôi cần thêm 'origin': git remote set-url origin https: // usera @ .... – Bryji