2013-08-04 20 views
14

Có cách nào để đặt biến môi trường GIT_SSH trong tệp gitconfig không?Đặt Biến môi trường GIT_SSH trong Gitconfig

+1

Bạn muốn đưa biến GIT_SSH vào điều gì? Một số cài đặt cũng có thể được thực hiện trong ~/.ssh/config. –

+1

Trong trường hợp của tôi, tôi thường sử dụng PuTTY để xử lý Git, vì nó khá tương thích và có một tác nhân SSH vững chắc. Tuy nhiên, một số repo Git tôi sử dụng có tương tác đăng nhập và PuTTY không xử lý này. Đối với những người, tôi cần phải sử dụng các khách hàng SSH mà Git cho Windows đi kèm với. Tôi muốn có 'GIT_SSH' được đặt trong cấu hình cho mỗi repo. – Brad

Trả lời

4

Kể từ my 2013 answer (Git 1.8.3.4), một cấu hình mới đã được thiết lập: core.sshCommand

Nếu biến này được thiết lập, git fetchgit push sẽ sử dụng lệnh quy định thay vì ssh khi họ cần để kết nối với một hệ thống từ xa.
Lệnh này có cùng dạng với biến môi trường GIT_SSH_COMMAND và được ghi đè khi biến môi trường được đặt.

Nó đã được giới thiệu trong Git 2.10, commit 3c8ede3, June 2016

Kể từ đó, bạn có Git 2.13, commit dd33e077, Feb. 2017, trong đó có ssh.variant

Tùy thuộc vào giá trị của các biến môi trường GIT_SSH hoặc GIT_SSH_COMMAND, hoặc cấu hình thiết core.sshCommand, Git tự động phát hiện xem có điều chỉnh các tham số dòng lệnh của nó để sử dụng với plink hay tortoiseplink, trái ngược với mặc định (OpenSSH).

Biến cấu hình ssh.variant có thể được đặt để ghi đè tự động phát hiện này; giá trị hợp lệ là ssh, plink, putty hoặc tortoiseplink.
Bất kỳ giá trị nào khác sẽ được coi là ssh bình thường. Cài đặt này có thể được ghi đè thông qua biến môi trường GIT_SSH_VARIANT.


Đối với những người, tôi cần phải sử dụng máy khách SSH rằng Git cho Windows đi kèm với

Vì vậy, đối với các hợp đồng mua, nơi bạn cần ssh thay vì putty, bạn có thể sử dụng cả hai thiết lập để đặt chính xác trong cấu hình của bạn những gì bạn muốn.

cd /path/to/my/repo 
git config ssh.variant ssh 
7

GIT_SSH không được đề cập trong git config man page.

"Git clone with custom SSH using GIT_SSH error" mô tả cách chuyển tùy chọn sang GIT_SSH, nhưng minh họa rằng nó không phải là một phần của cấu hình repo git.

+0

Cảm ơn sự giúp đỡ của bạn! Có cách nào khác để tự động thiết lập biến môi trường GIT-SSH như gitconfig nếu tùy chọn tồn tại? – voltair

+1

@voltair trên unix, nó sẽ nằm trong your.profile hoặc your.bashrc. Trên Windows, nó sẽ được đăng ký trong các biến môi trường người dùng của bạn. – VonC