[KT Aivle 3기 AI] 1일차. Git
1. 개요
KT Aivle School 3기 AI OT 이후 1일차
- 주제 : Git
- 강사 : 이고잉(생활코딩) 강사님
- 내용 : Git은 이전부터 사용은 해왔지만, 제대로 배워서 알고 사용한 것은 아니었기에 좋은 강의를 통해 기초를 다질 수 있었다. 강의는 VS Code를 활용하여 GUI 형태로 Git을 사용하는 방법을 알려주셨고, Git의 버전이 등록되는 이론적인 부분을 설명해주셨기 때문에 기존에 알고 있던 지식과 연관하여 이해할 수 있었다.
2. Git
- Git은 DropBox와 같이 데이터를 보관 및 관리를 해주는 분산형 버전 관리 시스템이다.
- 앞으로는 버전관리가 중요하다고 함.
- 개발자로서 Domain Knowledge, 코딩 능력, 협업 능력이 중요함.
- 이 중, 협업 능력이 제일 가성비가 좋음.
- 협업의 중추가 바로 git이다!
Git에 대하여 생각해야할 3가지
- 버전
- 백업
- 협업
- 위 3가지를 구현하는 방법을 중점적으로 익히기?
3. Github.com 실습
- github.com은 파일의 내용과 버전을 보관한다.
- 깃은 버전 간 차이를 비교할 수 있다.
- 깃은 각 버전이 만들어진 스냅샷을 가지고 있다.
Step-1) Repository 만들기
github link에서 회원가입 후 New 버튼을 클릭
/1.png)
다음 화면에서 Repository Name을 입력하고 (본인 계정의 Repository 이름이 중복되면 안됨) Public, Private 여부를 선택 후 Create repository 클릭
/2.png)
Step-2) 파일 생성
creating a new file을 클릭하고 아무런 내용으로 파일을 하나 만들어 보자. 파일 이름과 내용 작성 후, 아래에서 작업을 한 내용을 입력하고 Commit new file 클릭
Step-3) 파일 수정
파일 경로로 들어가서 Edit this file 아이콘을 클릭하면 수정할 수 있다.
Step-4) 버전 확인
Repository에서 우측 상단의 {nums} commits를 클릭하여 버전을 확인할 수 있다. 해당 버전을 누르면 버전의 스냅샷을 확인할 수 있다.
4. Git 실습
- VS Code에서의 실습 방법
Step-1) VS Code 설치 후 열기
VS Code 다운에서 VS Code 다운받고 열기. (Git도 설치해야 하는 걸로 아는데.. 나는 이미 설치가 되어있던 건지 일단 뒤에 진행됐음.)
Step-2) Repository 복제
Github Repository에 가서 SSH 링크를 복사.
Explorer를 열면 나오는 Clone Repository 클릭 (어떠한 폴더로 VS Code가 열리면 안보일 수 있는데, 이때는 상단탭의 File - New Window 하면 됨). 상단에 복사한 링크 붙여넣고, 원하는 폴더 선택하여 Clone.
이 때, SSH 인증키 발급과 github 설정이 되어있지 않으면 Clone이 되지 않음.
Step-2-1) SSH 인증키 발급
VS Code에서 Ctrl + ` 누르면 TERMINAL이 뜸. Git Bash를 클릭하고 $ ssh-keygen 을 입력.
엔터 신공 하면 /c/Users/User/.ssh/에 id_rsa와 id_rsa.pub가 생성됨. id_rsa는 비공개키, id_rsa.pub는 공개키로 생각하면 됨. id_rsa.pub는 아무나 봐도 괜찮은 정보, id_rsa는 나만 알아야하는 정보
$ cat /c/Users/User/.ssh/id_rsa.pub를 통해 내용을 확인하고 복사.
Step-2-2) SSH 인증키 등록
Repository의 Setting 말고, 계정의 Settings로 이동.
Access 카테고리의 SSH and GPG keys를 클릭.
상단의 New SSH key를 클릭하고 Title은 아무렇게나(ex: 집 컴퓨터 등)하고 아래에 복사한 id_rsa.pub 내용을 그대로 붙여넣고 Add SSH key 클릭.
Step-2-3) git config
아무런 설정이 없다면 또 안될텐데,
$ git config --global user.name '{이름}'
$ git config --global user.email '{이메일}'
해당 명령어를 통해 git config 설정을 해줘야함.
Step-3) Git Graph 설치
VS Code의 Extensions 탭에서 Git Graph 검색 후 설치. Git 버전관리를 GUI로 수월하게 해 줌. 좌측 하단의 Git Graph를 클릭하여 창을 띄울 수 있다.
Step-4) Commit, push, pull, fetch
해당 기능은 VS Code의 Source Control 탭에서 가능. 변경된 사항이 있으면 Changes로 들어가고, + 버튼(Stage Changes)을 통해 Stage Area로 파일을 업로드한다(git add). 위에 Commit 내용을 입력하고 Commit 클릭(git commit). 위의 점 3개를 클릭, Push클릭(git push).
기타
수업 내용이 GUI로 알려주신거라 실행 내용을 사진으로 정리하기가 힘들어(시간이 너무 많이 걸려요..) 얻은 지식을 글로 정리해보려 한다.
사실 뒷 부분이 진짜 중요한 내용이었긴 한데.. 지금 당장은 습득을 했고, 주말이나 다음에 정리할 기회가 있으면 추가 정리하도록 하겠다.
- Stage Area
4)에서 작성한 것 처럼, 버전을 업데이트하는데에 있어 방식을 알게 되었음. 기존에
1
2
3
$ git add .
$ git commit -m "{커밋메시지}"
$ git push
를 정확히 모르고 사용했었다.
우리가 작업하고 있는 폴더를 Working Directory라고 하고, 이 작업을 $ git add를 통해 Stage Area로 파일을 올린다. 이후 $ git commit을 통해 Stage Area에서 Repository로 전송하고, $ git push를 통해 최종 업로드를 진행한다.
- 버전관리
Git은 Head, Main(Master)가 존재함.
Head는 Working Directory가 어떤 버전에서 유래했는지를 가리킨다.Main(Master)는 마지막으로 작업한 버전이 누구인지를 가리킨다.
평소에는 Head가 Main을 가리키고 있고, 버전 업데이트(commit)시에 Head가 가리키는 부분이 업데이트 되는데 Head는 Main을 가리키고 있으므로 Main이 업데이트 됨 (ex: 1-commit 에서 2-commit으로 업데이트시, head->main->1-commit 에서 head->main->2-commit).
- 과거 버전으로 이동
명령어는 모르겠으나.. git graph에서는 우클릭 후 Checkout. Checkout은 head를 옮긴다.
다시 최신 버전으로 이동은 Main에다가 Checkout.
- Git Graph 해석
- Head 찾기
- Head가 Main을 가리키는지, Commit을 가리키는지 확인
- Local의 버전과 Repository의 버전이 같은 버전을 가리키는지 확인
- Branch
Git Graph에서 우클릭 후 Create Branch...하면 생성됨.
main이 다른 branch를 합칠 땐, head가 main을 가리킨 상태에서 해당 branch 우클릭 후 merge into current branch하면 merge됨.
branch merge 시, fast-forward 하면 새로운 branch 생성 x.
- 실험적인 작업을 할 때 :
- Head를 의도적으로 checkout, 작업 후 commit 하고 오류가 생기면 Checkout main
- 성공적으로 잘 되면 merge
- 다운로드 방법
- fetch
- fetch는 새로운 branch를 생성
- pull = fetch + merge
- git의 merge는 자동적으로 해주지만, conflict가 나는 경우에는 수정해줘야함.
- Local -> Remote Repository
VS Code에서 폴더열고, Initialize Repository -> remote -> Add Remote -> 아무 이름(일반적으론 origin)
- 기타
origin/main 은 remote tracking branch라고 불림
/3.png)
/4.png)
/5.png)
/6.png)
/7.png)
/9.png)
/11.png)
/12.png)
/10.png)
/13.png)