본문 바로가기

Tools

[git/gitlab] how to clone with gitlab ID/PW in console

# 콘솔에서 Gitlab 계정(push권한)을 이용한 클론하기.




Gitlab에서 clone은 따로 접근권한이 필요 없으므로 console 에서 clone 시 아무 문제 없이 받아진다.


 > git clone http://YOUR_REMOTE_URL:YOUR_PORT/YOUR_PROJECT.git 




하지만 clone 후 해당 프로젝트를 수정하고 add/commit 후 push하려 했을 때 다음과 같은 오류에 직면하게 된다.


remote: GitLab: You are not allowed to push code to this project.

To http://YOUR_REMOTE_URL:YOUR_PORT/YOUR_PROJECT.git

 ! [remote rejected] master -> master (pre-receive hook declined)

error: failed to push some refs to 'http://YOUR_REMOTE_URL:YOUR_PORT/YOUR_PROJECT.git'





위 오류는 clone 받은 프로젝트에 push 권한이 없기 때문에 발생한다.


git clone 시 push 가능한 계정으로 clone 하면 위 문제가 발생하지 않는다.


 > git clone http://YOUR_ID:YOUR_PW@YOUR_REMOTE_URL:YOUR_PORT/YOUR_PROJECT.git 




현재 git의 remote url 확인은 아래와 같다.


 > git remote -v 




만약 git clone 시 push 계정을 설정하지 못했다면 아래와 같이 현재 remote url 을 변경 가능하다.


 > git remote set-url origin http://YOUR_ID:YOUR_PW@YOUR_REMOTE_URL:YOUR_PORT/YOUR_PROJECT.git 




YOUR_PW 에 특수문자가 포함되어있는 경우 설정에 오류가 발생할 수 있다.


이 경우 패스워드에 특수기호를 제거 및 변경 후 재시도해야한다. 

(console 이 아닌 상용 프로그램 <ex : AndroidStudio, XCode>에서는 패스워드에 포함된 특수기호를 인코딩하여 저장하므로 문제가 없다.)




끝.