Post

Git/Github Basic

Git/Github Basic

Git/Github basic


1. Git 설치부터 해봅시다

윈도우

git windows 다운받으면 됨

—> 기본 브랜치 이름 main으로 (선택)

맥(윈도우도 보셈)

homebrew 들어가서 설치명령어 복붙 후 터미널에다가 붙이고 실행

구글에 검색해서 잘 설치합시다

그리고 터미널에다가,

1
brew install git

git 설치하고,

1
git 

입력해서 버전이 나온다면 잘 설치가 된 것

1
git config --global init.defaultBranch main

윈도우에서 main으로 브랜치 명 정해주는거랑 같은 짓임

1
2
git config --global user.email "본인이메일"
git config --global user.name "본인이름"

보통 이메일에는 깃허브에 등록된 본인 이메일, 이름에는 본인 깃허브 아이디를 기입하는데,

정확한 이유인지는 모르겠으나,

본인의 경우에는 깃허브 웹페이지 만들 때 접속자가 깃허브 주인 본인이 맞는지 확인하는 경우가 있었음

그래서 폴더 주인이랑 깃허브 주인이 같은게 편했다 정도..?


2.Git/Github의 대략적 구조

일단 본인의 경우, Github 이해 이전에 Git이 먼저라고 이해했음 (아마 맞을거임)

먼저 VScode를 보면 “작업 영역” 이라는게 있음

(작업)영역전개.png


Git이라는거 자체가 코드를 남들과 협업하거나, 혼자 코딩할때 헷갈리지 않게,

정리?를 도와주는 프로그램 정도로 생각했는데,

작업영역(VScode같은거) — 스테이징 영역(Git?) — 로컬 저장소(님들의 컴)

스크린샷 2026-02-10 오후 11.27.49.png

우리는 작업영역에서 코드를 막 짜고, 이제 스테이징 영역(staging area)로 commit할 파일을 올려둠

그리고 commit을 조지면, 로컬 저장소에 저장이 됨

근데 로컬저장소가 맛이 가버리면 어떡함?

AI고장 짤.jpeg

그래서 Github라는 구글드라이브같은데다가 저장을 하는거임 (클라우드 서비스)


3.Git Tutorial

스크린샷 2026-02-10 오후 11.32.11.png

폴더를 만들고 VScode를 들어가서

터미널, 혹은 VScode를 열고 터미널을 열고 이제 폴더를 들어가야함

폴더 들어가기

1
2
3
cd "폴더명"  #경로 들어가기
cd ..      #뒤로 빠꾸
pwd        #내 지금 어디?

들어갔으면,

1
git init

—> 폴더 안에다가 착한 사람눈에만 보이는 git폴더를 만듬

—> 이제부터 해당 폴더 안에서 일어나는 변화를 감시하는 느낌


(작업)영역전개 (1).png


1
2
3
4
git add "추가할 파일 명"     #특정 파일만 추가할 경우
git add .                 #전부 추가할 경우
git commit -m "커밋 메시지"  #커밋 + 뭘 변경했는지 메시지 남기기
git status                #커밋한 내역 전부 보여줌


4.Github 연결 Tutorial (잘 안될 만한 포인트만)

깃허브에 레포지토리 만들어서 로컬 저장소의 폴더랑 연결할 때,

1
2
git remote add origin "연결할 본인 깃허브 레포지토리 주소"
git add "연결할 로컬저장소의 파일명"

이렇게 하면 처음에

1
To push the current branch and set the remote as upstream use git push…어쩌고

이런 에러가 뜸

왜 뜬거냐면, Git은 실수로 엉뚱한 곳에 코드를 올리는 것을 방지하기 위해 매우 보수적으로 작동함.

그래서 “어디로 올릴지 확실하지 않으니, 다음부터는 자동으로 올릴 수 있게 상류(Upstream) 관계를 설정해달라”고 요청하는 것

1
**git push --set-upstream origin "브랜치명"**

이렇게 하면 다음부터 자동으로 오류 없이 업로드 가능


5.Github Fork/Clone


Clone

→ 깃허브 레포지토리 안의 모든 폴더, 파일들을 로컬 저장소에다가 복사해서 때려박는다

스크린샷 2026-02-11 오전 12.03.27.png

ㄴ> 위에 저런거 다 다운받는다는거임

이렇게 clone한 후에 내 레포지토리랑 연결해서 사용해도 됨


Fork

→ 내 깃허브 레포지토리로 복사본을 떠서 가져옴

구글 독스에서 “~~의 사본 만들기” 랑 비슷함

스크린샷 2026-02-11 오전 12.08.55.png

아니 그러면 clone이랑 뭐가 다름?

clone은 그냥 내가 가지고 있고, 나 혼자 수정하고, 혼자 북치고 장구치는 느낌

북치고장구치고.jpeg

fork는 복사본을 가져오는거지만,

내가 수정한걸 pull request를 통해서 원본 파일 담당자가 보고, 합치는걸 승인하면(merge to main),

원본에 영향력을 줄 수 있음

(작업)영역전개 (2).png

아님 말고

비슷하게, 웹페이지 테마같은 경우에는

스크린샷 2026-02-11 오전 12.04.47.png

요런게 달려있는데,

fork랑 비슷한데, 또 완전 같지는 않음…


6.Git Branch

다 같이 음식 만드는데, 누가 갑자기 후추 들어가면 어떰? 하면서 대뜸 쳐 뿌리면 어떨까

강호동.png

아무래도 그러면 쉽지않기 때문에, 일단 혼자 좀 만들어보고 맛을 보여줘야 하지 않을까?

그게 branch를 만드는 이유


기본으로 일단 main이 메인 branch기 때문에,

1
git branch

라고 하면 초록색으로

1
* main

이라고 뜬다.

여기서,

1
2
3
4
git branch "새로 만들 브랜치명"
git branch
* main
  "새로 만든 브랜치명"

이렇게 새로 만든 브랜치가 뜰 텐데,

1
git branch -m "바꿀 기존 브랜치명" "바꿀 새로운 브랜치명"  #브랜치 이름 바꾸기
1
git checkout "넘어갈 브랜치명"

이렇게 다른 브랜치로 넘어가서 코드를 만들 수 있다.

이때 분기된 브랜치에서 쓴 모든 코드는 다른 브랜치에 전혀 영향을 주지 않는다.

Nexus.jpg

(드라마 로키에서 나온 시간 분기점 같은 느낌..)

분기된 브랜치에서 짠 코드를 메인에 병합하고 싶다면,

다시 main으로 돌아와서,

1
2
3
git checkout main

git merge "병합할 브랜치명"

이러면 이제 main에도 분기된 브랜치에 있던 코드가 들어온다.



Reference :

26-1 DSL Modeling Session

코딩애플 Git/Github 강좌

Google Gemini

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