git 은 가능하면 일반 유져 권한으로 하자 ‘ㅅ’a (apache 에서 엑세스가 잘 되려면.)
기본적으로 git 은 암호 를 저장하는 store 방식으로 설정을 할 경우 ~/.git-credentials
파일에
https://[아이디]:[패스워드]@깃호스트주소
형태로 평문 저장을 한다. 때문에 보안상 좋지 않다.
다만 별도의 config 없이 git 명령어 를 사용할 때 마다 아이디, 패스워드를 입력을 요구 하기 때문에
아래와 같은 명령어로 cache 를 1시간 설정 값을 지정해서 일정 시간 인증을 유지하는 편이 정신건강에 좋다.
1 2 3 4 5 6 7 8 9 |
~]$ git config credential.helper 'cache --timeout=3600' ## 정보 등록 ~]$ git config --gloabal user.name "ABC" ~]$ git config --gloabal user.email "abc@test.com" ## 정보 삭제 ~]$ git config --unset --global user.name ~]$ git config --unset --global user.email |
git을 이용해서 remote 서버인 origin에 쓰기가 필요한 경우 사용자 정보를 입력 해준다 ‘ㅅ’a
더 많은 사용 방법이 있겠지만 대부분 툴을 쓰는 부분이기도 하고 이정도만 알면 shell 에서 사용하는데 무리가 없을듯 하다 ‘ㅅ’a
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
## 받기 ~]$ git clone <깃주소>/<레파지토리이름> # 레파지토리 최신 내용을 다운받는다. ~]$ git fetch # 레파지토리 최신 정보를 가져온다. 병합 안함. ~]$ git pull # 레파지토리 최신 정보를 가져와 병합 한다. ## 사용 하기 ~]$ git checkout <브렌치> # 지정한 브렌치로 변경한다. ~]$ git checkout -b <브렌치> # 브렌치를 생성 하며 변경 한다. ~]$ git branch -d <브렌치> # 브렌치를 삭제 한다. ~]$ git branch -a # 모든 브렌치 리스트를 본다. ## 쓰기 ~]$ git add . # 현재 디렉토리의 변경사항을 스테이지에 올린다. ~]$ git commit -m "<내용>" # 버전을 정의 한다. ~]$ git push origin <브렌치> # origin 리모트 서버의 master 브랜치로 푸쉬 한다. |
다른 방법으로는 ssh-key 를 만들어서 ssh 방식으로 사용하는 방법이 있다.
1. rsa key 생성
1 2 3 4 |
~]$ ssh-keygen -t rsa -P "" -f ~/.ssh/git_id_rsa ~]$ cat ~/.ssh/git_id_rsa.pub ssh-rsa AAAA......................................Qs= id@hostname |
cat 을 통해 확인된 공개 키를 git 서비스를 제공 하는 사이트에 ssh key 등록을 한다.
- AWS CodeCommit 의경우 IAM – 사용자 – 보안 자격 증명 에 codecommit 용 ssh-key 등록 메뉴가 존재 한다.
2. config 파일 생성 (키등록후 나온 ssh 키 ID 가 User 값으로 사용 된다.)
1 2 3 4 |
~]$ touch ~/.ssh/config ~]$ chmod 600 ~/.ssh/config ~]$ vi ~/.ssh/config |
1 2 3 4 5 6 7 8 9 |
### AWS codecommit us-west-1 에서 사용하는 인증 Host git-codecommit.us-west-1.amazonaws.com User AAAAAAAAAAAAAAAAAAAA IdentityFile ~/.ssh/other_id_rsa ### AWS codecommit 그외 모든 리전에서 사용하는 인증 Host git-codecommit.*.amazonaws.com User BBBBBBBBBBBBBBBBBBBB IdentityFile ~/.ssh/git_id_rsa |
3. git 을 사용한다 ‘ㅅ’b (ssh 키로 등록해서 사용할 경우 git 주소의 시작이 https 에서 ssh 으로 변경되어야 한다.)
1 |
~]$ git clone ssh://<깃주소>/<레파지토리이름> |