Git이란 분산형 버전 관리 시스템 (Version Control System, VCS)의 한 종류로 소스코드를 효율적으로 다룰 수 있게 만들어주는 시스템이다. 쉽게말하자면 코드를 작성했던 과거와 현재를 원하는대로 넘나들며 조작할 수 있는 시스템이다.
파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 불러올 수 있는 시스템을 의미한다.
VCS를 사용하면 선택한 파일을 이전 상태로 되돌릴 수 있거나, 변경 사항을 비교할 수 있고, 변경한 사람 및 변경 시기를 추적할 수 있다. 또한, 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있다.
Github은 Git과 같은 것이 아니었다! 이 둘은 버전 관리라는
핵심 적인 기능을 이용할 수 있다는 공통점이 있으면서도 확연한 차이를 보인다.
프로필 메뉴에서 settings
→ setting의 최하단 Developer settings
→ personal access token 중 Tokens (classic)
→ Generate now token (classic)을 선택하여 생성
토큰은 GitHub API에 접속할 수 있는 입구를 만든다고 생각하면 된다.
나는 앞으로 VS Code를 사용해서 .yaml 파일과 .gitignore파일을 가지고 연습을 할 예정이다.
그런데 VS Code terminal에서 git을 이용하여 작업을 하다보면 내가 어떤 것을 작업했고 어디 부분에서 작업하고 있는지 시각화 되지 않아 충돌이나 오류를 일으킬 수도 있다.
그 시각화에 도움을 주는 것이 SourceTree라고 생각하면 된다.
Ctrl + shift + P 눌러 모든 명령 표시 후 Select Default Profile 입력한다.
거기서 Git Bash를 선택하면 Terminal을 들어갈때 기본적으로 Git Bash로 들어갈 수 있다.
VS Code의 새 터미널 (New TErminal)을 연 뒤 Terminal 창에서 '+'를 누르면 Git bash (MAC에서는 bash)가 있다.
누르면 Git bash Terminal로 창이 바뀐다.
git init
git config --list 입력하여
user name, user email이 잘 들어갔는지 확인, init.defaultbranch=master 인가 확인
(안 들어갔을 경우)
1. git config --global user name (본인 github사용자이름) 입력
2. git config --global user email (본인 github email) 입력
3. git config --global init.defaultBranch main 입력
그리고 다시 위에 list 코드를 이용하여 확인해본다.
새로만든 repository 주소록 복사후 연결하기 → git remote add origin (repository 주소)
(이건 새로운 프로젝트에 참여하게 되었을 때 새로운 reepository에 연결하는 방법이다.)
삭제하기
: git branch -D (삭제할 branch 이름)
branch명 변경하기
: git branch -m (원래 이름) (바꾸고 싶은 이름)
merge나 rebase를 하고 확인 메세지가 나오면 shift + ;를 입력한뒤 wq입력후 enter하면 원래 코드 칠 수 있는 창으로 나갈 수 있다.
main branch와 다른 branch들 각각에서 같은 부분에 대한 변경 내용이 다를경우 충돌이 발생하게 되는데 이를 해결하는 방법을 다룰 예정이다.
merge conflict
: 각 병합시 충돌되는 부분을 보여주고 main에 있는 (current) 값을 사용할 예정인지 다른 branch인 (recent)값을 사용할 예정인지 결정할 수 있게 해준다. 원하는 값으로 선택하고
git add . → git commit -a로 하면 merging(main|MERGING)이 종료된다.
rebase conflict
: merge 충돌과 동일하게 진행하고 원하는 변경 이력을 선택한 후
git add . → git rebase --continue 으로 진행. (또 충돌이 생긴다면 해당 과정 반복)
그리고 main branch로 이동 후 해당 branch를 main branch로 merge하면 끝!
내가 프로젝트의 리더, 메인이라면 Git에서 새로운 프로젝트를 생성할 줄 알아야한다.
내가 프로젝트에 소속되어 있는 멤버라면 해당 프로젝트에 접근하여 작업하고 있는 파일들을 내려받고 공유 받아야한다.
프로젝트를 위해 내 컴퓨터에서 새로운 폴더를 생성하고 받는다면 <3. 초기 setting>을 참고하여 새 폴더를 git에 연결하고 아래 순서대로 작업해야한다.
이 외에도 git 명령어나 작동 원리에 대해 알고 싶다면
이 사이트에서 게임형식으로 연습해보는 것도 좋다!