2012-06-22 33 views
6

Có thể có git pullgit push trong một lệnh git không?git pull và git push in one go

Cú pháp như git pull & git push không phù hợp với tôi hoàn toàn, vì tôi cần cung cấp thông tin đăng nhập của mình cho máy chủ hai lần: khi kéo và đẩy.

Vì vậy, tôi tự hỏi, liệu có cách giải quyết nào cho vấn đề này không? Tôi tin rằng nó nên được, vì nó là trường hợp khá phổ biến khi phát triển kéo nguồn gốc từ xa trước khi đẩy thay đổi địa phương.

EDIT: Tôi đang sử dụng Windows 7/x64, msysgit-utf8 1.7.9

+1

Có thể nguy hiểm nếu có xung đột hợp nhất không? –

+1

Giao thức là gì? có nhiều cách để cung cấp thông tin đăng nhập chỉ một lần cho mỗi phiên – CharlesB

+3

Đừng làm điều đó. Thiết lập xác thực khoá công khai hoặc thay đổi giao thức để bạn có thể. – wadesworld

Trả lời

4

Trước hết, bạn có thể cấu hình file _netrc sẽ được sử dụng bởi Git, ở đây các vấn đề liên quan: Git - How to use .netrc file on windows to save user and password sau đó, bạn có thể cấu hình một bí danh cho lệnh:

git config alias.publish '!git pull && git push'` 

và cũng giống loại: git publish

+0

Tôi có thể thêm thông tin đăng nhập vào URL của kho lưu trữ bằng biểu tượng @ như dấu phân cách. Và tôi có thể thêm mật khẩu của mình vào '.git/config'. Nhưng tôi không muốn lưu trữ mật khẩu của mình. Tôi muốn được hỏi mật khẩu. Nhưng chỉ một lần thôi! – shytikov

+0

Tôi tin rằng giải pháp '.netrc' này sẽ không hoạt động với kết nối ssh ... – shytikov

+0

Bạn không cần phải thêm thông tin đăng nhập và mật khẩu vào .git/config. Đó là một cách sai lầm. Nếu bạn sử dụng kết nối ssh, thì tốt hơn không nên sử dụng các khóa công khai cho điều đó. Đối với kết nối https bằng thông tin đăng nhập, bạn có thể sử dụng tệp _netrc trong cửa sổ, chú ý đến gạch dưới trong tên tệp thay vì dấu chấm. – lisachenko

0

tôi khuyên bạn nên làm một cái gì đó chỉ nhanh chóng và dơ bẩn trong trường hợp này. Nó có thể không phải là cách hiệu quả nhất để làm điều đó, nhưng tôi sẽ chỉ tạo ra một kịch bản bash trong vim với các lệnh và chạy xem xét các lệnh đơn giản như thế nào. Sau đó, bạn có thể chỉ cần mở tập tin đó mỗi khi bạn muốn kéo và đẩy cùng một lúc.

Tất cả những gì bạn phải làm là tạo tệp, đặt vào hai dòng lệnh bạn muốn viết và nhập tên tệp đó vào dòng lệnh bất cứ khi nào bạn muốn thực thi chúng.

Một lần nữa, không phải là cách hiệu quả nhất mà là khắc phục nhanh.

+0

Nó không khắc phục tình huống với xác thực kép ... Và đó là vấn đề. Nó không làm phiền tôi để gõ 'git pull & git push'. Tôi không muốn nhập mật khẩu của mình hai lần, vì tôi tin rằng nên tối ưu hóa việc này. Nhưng tôi chưa tìm thấy nó ... – shytikov

0

Bạn muốn sử dụng tốt hơn SSH, nhưng nếu bạn không thể sử dụng SSH, bạn luôn có thể sử dụng các cửa hàng cửa sổ thông tin để lưu mật khẩu của bạn, do đó bạn không cần phải điền vào nó trong hai lần:

git config --global credential.helper wincred 

Nguồn: Git documentation