일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- 통합개발환경 추천
- 로그인 후 크롤링
- 빠른 개발
- VS Code
- tf-idf
- 일반항 유도
- 유사도
- 블로그 도메인 주소 변경
- AWS
- 코드 구현
- IDE 추천
- bow
- 계정정보
- 플라스크
- 웹 개발
- 디버깅
- 통계적 언어모델
- 가상환경
- 성능비교
- 하드코딩
- 피보나치 수열
- 셀레니움
- Rout 53
- bag of words
- authentication faile
- token
- 좋은 기능
- 웹 사이트 만들기
- python-docx
- 자연어 처리
- Today
- 58
- Total
- 100,137
DoITgrow
[Git] Git pull/push 계정 정보를 계속 물어볼 때 설정 방법 본문
일전에 아래 포스팅에서 Git 계정 정보가 변경되었을 시, 아래 포스팅과 같이 설정을 바꾸는 방법을 확인했었다.
2021.09.24 - [Collaboration & Tools] - [Git 오류] git push 또는 git pull 할 때 authentication failed 되는 문제
그러나 pull/push를 할 때마다 계속 계정 정보를 입력하라고 해서 매우 불편함을 느꼈다.
이를 해결하는 방법은 아래와 같이 git bash 창에 코드를 입력하면 된다.
$ git config credential.helper store
위 명령어를 통해 credential.helper의 store 옵션을 주게되면 반영구적으로 인증을 유지할 수 있다.
만약 해당 프로젝트가 아닌 전체 git 프로젝트에 설정하고 싶다면 아래와 같이 --global 인자를 추가해 주면 된다.
$ git config --global credential.helper store
여기서 잠깐, --global과 같은 인자가 무엇인지 잠깐 살펴보고 가자.
--global vs --system vs --local
git에서 사용할 수 있는 --global 같은 인자는 --local, --system이 추가로 있다. 이것이 무엇일까?
git bash에 아래 명령어를 입력하면 총 3가지의 다른 경로에서 관리하고 있는 환경설정 값들이 보인다.
$ git config -l --show-origin
위 창에서 볼 수 있듯이 git은 총 3가지의 계층적인 단계로 설정 관리를 하고 있다.
- --system : 한 컴퓨터에서 여러 계정이 존재하는 경우라면 모든 계정에 같은 git 환경설정을 반영
- --global : 한 계정 내에서 여러 개의 프로젝트를 관리하고 있다면 모든 프로젝트에 같은 git 환경설정을 반영
- --local : 프로젝트별로 git 환경설정을 관리
웹 상에서 사람들이 많이 만지는 설정을 보면 --global 인 것 같다. 아마도 프로젝트마다 설정을 달리 사용하는 것은 기억하기도 힘들 것이고, 보통 컴퓨터 계정에 따라 사용하는 습관이 다르니까 대부분 --global 을 통해 작업하는 것 같다.
git bash 명령어가 환경설정을 바꾸는 동작 원리는 무엇일까?
그러면 조금 더 깊게 들어가서 환경설정을 시스템 상에서 어떻게 관리하고 있는지 궁금해서 살펴 보았다. 아래 명령어를 입력하여 global 환경 설정을 확인해 보면 각자 시스템에 맞는 그 아래 결과를 볼 수 있다.
$ git config --global -l --show-origin
위 출력 결과의 경로로 들어가서 파일에 들어가보면 아래와 같은 정보를 볼 수 있다. 바로 여기서 설정을 관리하고 있는 것이다. 우리가 git bash 명령어를 통해 여기에 설정을 저장시킬 수 있고, 반대로 직접 메모장을 통해 양식에 맞추어 입력하여 설정할 수도 있다.
추가로 계정 정보 설정에 따른 보안 이슈 문제를 해결하는 방법을 하나 더 소개하려고 한다.
계정 정보 저장에 따른 보안 문제는 어떻게 해결해야 할까?
Git 공식 홈페이지에서 확인해 보니 권고하는 사항은 아래와 같이 credential.helper 설정을 store가 아닌 cache 기능을 사용하라는 것이다. 뒤에 'cache --timeout=60' 부분은 초 단위이며, 계정계정(아이디, 비밀번호)를 입력 후, 60초간 cache 해 놓고, 이후에는 해당 정보가 사라진다는 것이다. 만약 'git config --global credential.helper cache'로만 설정할 경우 defalut로 '--timeout=900'이 설정된다고 한다.
이 기능을 이용하면 회사에서 일하는 동안만 cache 해 놓으면 보안 상 안전하겠다 생각이 들어서 설정해 보았다.
$ git config --global credential.helper 'cache --timeout=60'
$ git pull
fatal: credential-cache unavailable; no unix socket support
Already up to date.
그러나 위와 같이 git 을 실행하며 정상 작동하는지 확인해보려 했으나 경고 메시지가...(pull/push 기능은 잘 작동) stackoverflow 나 다른 포스팅 자료들을 살펴보며 해결 방법을 찾아보았으나 대부분의 내용은 상기 경고를 없애는 방법만 나와있었다. (이것은 "git config --global --unset credential.helper"로 설정을 지워도 되고, 위에서 말한 경로로 직접 들어가서 텍스트 편집기를 통해 직접 지워도 된다.)
그리고 stackoverflow에 달린 답변으로는 OS가 윈도우이면 Unix socket support가 없기 때문에 안된다고 한다. 이 부분은 OS를 잘모르는 나로써는 어떻게 해결해야 할지 잘 모르겠다. (혹시 아시는 분이 있다면 댓글을 부탁드립니다.)
그래서 일단은 회사나 집 컴퓨터를 나만 쓰니까 credential.helper 설정을 "store"로 반영구적으로 해놓아도 문제될 것은 없기 때문에 이대로 사용하다가 나중에 혹시나 해결 방안을 찾게되면 포스팅을 다시 올리고자 한다.
긴 내용 읽어 주셔서 감사드립니다. 내용이 도움되셨다면 "좋아요" 버튼 부탁드립니다.
문의사항과 잘못된 정보에 대한 지적은 언제든지 환영입니다 ^^.
'Collaboration & Tools' 카테고리의 다른 글
[VS Code] 나만 알고 있기 아까운 통합개발환경(IDE) 사용 팁 - (1) (0) | 2021.09.28 |
---|---|
[Git 오류] git push 또는 git pull 할 때 authentication failed 되는 문제 (0) | 2021.09.24 |
[VS Code 오류] Visual Studio Code (VS Code) 터미널에서 가상환경 진입 오류 (0) | 2021.09.22 |