keyword - git
Git은 소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템이다. 파일의 변경사항을 스냅샷을 찍듯이 상태 그대로를 저장한 다음, 버전으로 만들어서 여러 버전을 적용시켰다가, 삭제시켰다가 자유롭게 다룰 수 있게 해주는 시스템이다.
Github
Github은 Git Repository를 관리할 수 있는 클라우드 기반 서비스이다. 우리가 변경한 사항들을 로컬 환경에 구애받지 않고 관리할 수 있는 원격 시스템이라고 보면 될 것 같다. github을 통해 다른 사람의 코드를 받고, 내 코드를 보내고, 서로 소통할 수 있게 되는 것이다.
git 명령어
Fork clone status restore add commit reset checkout reflog log pull push init remote add remote -v 등등의 명령어가 있다.
reset에 대해서
https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Reset-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%8C%EA%B3%A0-%EA%B0%80%EA%B8%B0
이곳에 굉장히 자세하게 되어 있다.
Tilde(~)와 Caret(~) 기호의 의미와 사용법
https://stackoverflow.com/questions/2221658/whats-the-difference-between-head-and-head-in-git
git reset에서 tilde(~)와 caret(^)의 차이는
tilde(~)는 첫번째 부모만을 따라서 거슬러 올라가는 것이고
caret(^)은 현재 branch에서 immediate(인접한)한 부모만 따라서 거슬러 올라가는 것이다.
"하나의 부모만 가지는" commit에게는 Branch~나 Branch^나 똑같은 걸 의미한다.
Branch~3은 Branch^1^1^1과 같다
Branch^3이라고 하면 세번째 부모를 따라가는 것이다.
git branch가 merge되어 부모가 여러개인 복잡한 경우에만 tilde와 caret의 차이가 있다.
2-1) github 유저인증문제
remote: Support for password authentication was removed on August 13, 2021.
github이 아이디와 패스워드로 사용자를 인증하는 것이 보안상 취약하다고 폐지해서 다른 방법을 사용해야 했는데 ssh와 access token을 발급받는 것이 있었다.
나는 처음에는 ssh(Secure Shell, 비대칭키를 이용해 사용자를 인증)를 사용해서 인증했으나, ssh 주소가 아닌 html주소를 받아와서 local repository에 pull을 하니 위와같은 오류가 발생했다. 디스코드로 친절하신 분이 access token을 사용하는 법을 공유해주셔서 배웠다.
Username에는 github username을 적고, password에 access token을 적으면 정상적으로 pull이 실행된다.
2-2) pull 옵션 오류
pull의 옵션으로 무엇을 사용할 것인지 정하지 않아서 나타나는 오류이며,
git config --global pull.rebase false
를 입력하여 나는 merge값을 기본으로 설정하였다.