git 에 있는 git 자격 증명 파일을 올바르게 채울 수 있도록 사용자 자격 증명을 HTTP 문자열에 삽입해야 합니다 ~/.git-credentials
.
시작해야 했던 세 가지 환경 변수는 다음과 같습니다.
user="someUser"
pass="somePass"
uri="http://sometld.org/path/repo.git"
이것저것 살펴봤지만 비표준 경로( )가 아닌 awk
Github 스타일 복제 경로( )에서만 작동합니다 .https://github.com/org/repo.git
https://git.private.org/scm/~user/path/repo.git
proto=$(echo $uri | awk -F"/" '{print $1}')
domain=$(echo $uri | awk -F"/" '{print $3}')
repo_path=$(echo $uri | awk -F"/" '{print $4}')
repo_name=$(echo $uri | awk -F"/" '{print $5}')
echo "$proto//$user:$pass@$domain/$repo_path/$repo_name"
# http://someUser:[email protected]/path/repo.git
내 파일을 채우기 위해 HTTP 문자열에 사용자 이름과 비밀번호를 삽입하는 ~/.git-credentials
가장 좋고 쉬운 방법은 무엇입니까 ?
답변1
$ sed -e "s^//^//$user:$pass@^" <<<$uri
http://someUser:[email protected]/path/repo.git
이는 문자열 내에서 대체되며 //
어디에서나 사용할 수 있습니다.//$user:$pass@
$uri
특히 Bash에서는:
$ echo ${uri/\/\////$user:$pass@}
http://someUser:[email protected]/path/repo.git
동일한 대체 작업을 수행합니다.- 이것이 바로 그것인데 ${variable/pattern/replacement}
, 여기에서는 구분 기호를 변경할 수 없기 때문에 패턴에서 슬래시를 이스케이프 처리해야 합니다.