Q : 잘못된 push로 낭패를 본적이 있습니까?
A : 네... 회사 소스코드를 공개 저장소에 올린 적이 있습니다
우연의 일치 + 집중하지 않은 나의 문제 였고 복구 하였지만 당황스러운 경험이였다.
자신의 총명함을 믿습니까? 아니요..
실수를 하지 않기 위해서는? 실수할 상황을 없애거나 줄이면 되기에 개발 환경을 설정하자
내가 사용하고 있는 개발 환경에서 git 저장소가 별도로 동작하게 하자
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
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