[Git] 여러 계정으로 사용하기

CID.Y·2021년 4월 15일
0

알쓸신잡

목록 보기
1/2

Q : 잘못된 push로 낭패를 본적이 있습니까?
A : 네... 회사 소스코드를 공개 저장소에 올린 적이 있습니다

우연의 일치 + 집중하지 않은 나의 문제 였고 복구 하였지만 당황스러운 경험이였다.

  1. fork를 띄어서 프로젝트를 import할 이슈가 생김
  2. 개인 학습을 위해 github 저장소를 사용
  3. sourcetree의 계정 정보(git)가 회사 계정에서 개인 계정으로 스위칭
  4. 아무 생각 없이 push...
  5. 보안 팀에서 연락옴

자신의 총명함을 믿습니까? 아니요..

실수를 하지 않기 위해서는? 실수할 상황을 없애거나 줄이면 되기에 개발 환경을 설정하자

내가 사용하고 있는 개발 환경에서 git 저장소가 별도로 동작하게 하자

GitConfig

git에서 제어할 수 있는 설정값은 다음과 같이 엄청나게 많은 기능일 제공한다

https://gist.github.com/pksunkara

[user]
	name = Pavan Kumar Sunkara
	email = pavan.sss1991@gmail.com
	username = pksunkara
[core]
	editor = vim
	whitespace = fix,-indent-with-non-tab,trailing-space,cr-at-eol
	pager = delta
[sendemail]
	smtpencryption = tls
	smtpserver = smtp.gmail.com
	smtpuser = pavan.sss1991@gmail.com
	smtppass = password
	smtpserverport = 587
[web]
	browser = google-chrome
[instaweb]
	httpd = apache2 -f
[rerere]
	enabled = 1
	autoupdate = 1
 ..........more

git을 설치하였다면 다음 명령어를 통해 git 설정 값을 확인 할 수 있다


# 설정 보기
git config -l

# 설정 파일 보기
vi $HOME/.gitconfig

# 출력
[gpg]
        program = gpg
[commit]
        template = /Users/cid.yoon/.stCommitMsg
        gpgSign = false
[tag]
        forceSignAnnotated = false

[core]
        excludesfile = /Users/cid.yoon/.gitignore_global
        autocrlf = input

[filter "lfs"]
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
        process = git-lfs filter-process
        required = true

[difftool "sourcetree"]
        cmd = opendiff \"$LOCAL\" \"$REMOTE\"
        path =
[mergetool "sourcetree"]
        cmd = /Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
        trustExitCode = true

git 계정을 사용 할 수 있게 ssh를 설정하는 과정은 생략하였는 Git 서버 - SSH 공개키 만들기를 참고하면 된다

간략하게 과정을 정리하면
1. 내 컴퓨터에서 사용할 메일 계정으로 ssh 만들기
2. 만들어진 ssh를 github 사이트에 등록하기(사용자 정보 -> settings -> SSH and GPG keys)
3. 해당 계정을 ssh에 등록하기
다음 글을 참고하자 Github ssh key 등록하는법

키 등록을 하였으면 ssh에 내가 사용할 alias를 설정하자

# ssh 설정 파일
vi ~/.ssh/config

# alias 등록
Host github.com 					// 사용할 이름
        HostName github.com 				// host 정보
        User git 
        IdentityFile ~/.ssh/github_id_rsa  		// 생성한 ssh의 private key

등록 완료된 ssh 키가 잘 동작하는지 확인하려면 다음과 같은 명령어를 사용하면 된다
여기서 github.com은 내가 등록한 호스트의 alias이다
키 검사

mac환경 + sourceTree가 설치되어 이런 모양으로 나오는데, [IncludeIf] 속성을 사용하여 작업할 폴더와 사용할 계정을 추가해 주면 된다.

Includes 속성

Includes
The include and includeIf sections allow you to include config directives from another source. These sections behave identically to each other with the exception that includeIf sections may be ignored if their condition does not evaluate to true; see "Conditional includes" below.

간략하게 보면 해당 속성을 사용하여 다른 구성 파일(경로 및 설정)을 사용할 수 있는것이다.
원하는 것이 나왔으니 설정하면 된다

# ./gitconfig

[includeIf "gitdir:~/cid/"]
        path =.gitconfig-cid // 내가 사용할 설정 정보

내 설정 정보

# ~/.gitconfig-cid
[user]
        email = myemail@mail.com	# git 계정에 사용되는 메일 주소
        name = cid.yoon				# git 사용자 이름

끝났다. 이제 내가 설정한 폴더로 이동해서 정상적으로 동작 되는지 확인해 보자
git config --show-origin --get user.name

내가 설정했던 이름이 잘 나온다. 다른 폴더로 이동해서 테스트도 해보자

별도의 설정 없이도 다른 설정 파일을 사용하는 것을 확인하였다. 이제 그런 일은 없겠지 ;ㅁ;

참고 자료

https://jintaewoo.tistory.com/44
https://michigusa-nlp.tistory.com/74
https://jeunna.tistory.com/109

profile
Do Infinity And Beyond

0개의 댓글