Post

[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가지

  1. 버전
  2. 백업
  3. 협업
    • 위 3가지를 구현하는 방법을 중점적으로 익히기?

3. Github.com 실습

  • github.com은 파일의 내용과 버전을 보관한다.
  • 깃은 버전 간 차이를 비교할 수 있다.
  • 깃은 각 버전이 만들어진 스냅샷을 가지고 있다.

Step-1) Repository 만들기

github link에서 회원가입 후 New 버튼을 클릭
img1

다음 화면에서 Repository Name을 입력하고 (본인 계정의 Repository 이름이 중복되면 안됨) Public, Private 여부를 선택 후 Create repository 클릭
img2

Step-2) 파일 생성

creating a new file을 클릭하고 아무런 내용으로 파일을 하나 만들어 보자. 파일 이름과 내용 작성 후, 아래에서 작업을 한 내용을 입력하고 Commit new file 클릭

img3

img4

img5

Step-3) 파일 수정

파일 경로로 들어가서 Edit this file 아이콘을 클릭하면 수정할 수 있다.

img6

Step-4) 버전 확인

Repository에서 우측 상단의 {nums} commits를 클릭하여 버전을 확인할 수 있다. 해당 버전을 누르면 버전의 스냅샷을 확인할 수 있다.

img7

img8

4. Git 실습

  • VS Code에서의 실습 방법

Step-1) VS Code 설치 후 열기

VS Code 다운에서 VS Code 다운받고 열기. (Git도 설치해야 하는 걸로 아는데.. 나는 이미 설치가 되어있던 건지 일단 뒤에 진행됐음.)

Step-2) Repository 복제

Github Repository에 가서 SSH 링크를 복사.

img11

Explorer를 열면 나오는 Clone Repository 클릭 (어떠한 폴더로 VS Code가 열리면 안보일 수 있는데, 이때는 상단탭의 File - New Window 하면 됨). 상단에 복사한 링크 붙여넣고, 원하는 폴더 선택하여 Clone.

이 때, SSH 인증키 발급과 github 설정이 되어있지 않으면 Clone이 되지 않음.

Step-2-1) SSH 인증키 발급

VS Code에서 Ctrl + ` 누르면 TERMINAL이 뜸. Git Bash를 클릭하고 $ ssh-keygen 을 입력.

img12

엔터 신공 하면 /c/Users/User/.ssh/id_rsaid_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로 이동.

img9

Access 카테고리의 SSH and GPG keys를 클릭.

img10

상단의 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를 클릭하여 창을 띄울 수 있다.

img13

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 해석

  1. Head 찾기
  2. Head가 Main을 가리키는지, Commit을 가리키는지 확인
  3. 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

- 다운로드 방법

  1. fetch
    • fetch는 새로운 branch를 생성
  2. pull = fetch + merge
    • git의 merge는 자동적으로 해주지만, conflict가 나는 경우에는 수정해줘야함.

- Local -> Remote Repository

VS Code에서 폴더열고, Initialize Repository -> remote -> Add Remote -> 아무 이름(일반적으론 origin)

- 기타

origin/main 은 remote tracking branch라고 불림

This post is licensed under CC BY 4.0 by the author.

[사전학습] 6.4 시계열 분석

[KT Aivle 3기 AI] 2~3일차. Python Programming