본문 바로가기
{git}

21.08.16{코딩일기} git 설치 및 vs code와 깃헙 연동방법 | Mac & Windows 버전

by Davey 2021. 8. 16.
728x90

#1 git을 설치한다

- Mac
hombrew 사이트 접속하여
아래 코드를 터미널에 입력해서 git을 설치한다.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

- WIndows
git 메인사이트로 접속하여
windows전용 프로그램을 다운받는다.

#2 vs code실행시킨 후 git extenstion을 설치한다.

 

#3 고양이 모양버튼을 클릭한후 sign in 버튼을 클릭한다.

- Mac & Windows
gtihub 페이지에 authorize 로그인 설정한다.

#3-0 vs code 에서 터미널 실행한다.

- Mac
control + \ 를 누른다.

- Windows
ctrl + shift + ` 를 누른다.

#3-1 git config user.email "이메일" 을 입력한다.

쌍따옴표반드시입력

#3-2 git config user.name "githubid명" 을 입력한다.

쌍따옴표반드시입력

#4 github에 원하는 레파지토리를 clone한다.

- Mac & Windows
ctrl + shift + p 를 누르고, git clone을 입력한후 하단에 보이는 git clone글자를 클릭한다. 또는
이미 sign in이 된 상태이므로 원하는 폴더를 선택한다.

#5 다시 vs code 에서 터미널 실행한다.

- Mac
control + \ 를 누른다.

- Windows
ctrl + shift + ` 를 누른다.

#6 git log --all --oneline --graph --decorate을 터미널창에 입력한다.

아래와 같이 HEAD - > main을 가리키고 있는걸 확인 할 수 있다. 현재 branch가초록색으로 표시된다.

 

main branch라면 git checkout <branch명>을 변경하길 원하는 branch로 바꿀 수 있다.
그러나 현실적으로 신규생성한 branch가 없으므로 branch를 생성해주어야 한다.

 

#7 git branch <신규브랜치명> 를 터미널창에 입력해 브랜치를 생성한다.

예시로 jy-temp-re라는 branch를 생성해보았다. git checkout <신규브랜치명>을 입력하면 해당 브랜치로 이동된다.

#8 git log --all --oneline --graph --decorate을 터미널창에 입력한다.

차이점이 느껴지는가?
아래와 같이 HEAD - > jy-temp-re Head가 main 브랜치가 아닌 신규생성한 브랜치를 가리키는걸 확인가능하다.

#9 간단하게 ReadMe 파일을 수정해본 후 ctrl + s 를 눌러 저장한다

파일을 수정해 변경된 내용이 pr이후에 머지되고 난후 다시 main 브랜치 내용을 pull했을때 잘 반영되었는지 확인하기 위함도 있으며, commit을 보내기 위한 필수전제조건이다.

#10 git add . 를 입력후 엔터친다.

fork했던 마스터 레파지토리에 병합하기 위해선,
우선 내가 생성한 branch에서 작업내용을 로컬저장소에서 1차 저장해야한다. 이때 add를 사용한다.

#11 git commit -m "커밋메세지"를 입력후 엔터친다.

만약 nothing to commit, working tree clean라고 에러메세지가 출력되면
git checkout -b <신규브랜치명> 입력하여 신규브랜치를 생성하고 작업한다.

2차로 마스터레파지토리에서 fork하여 저장한 원격저장소의 동일명의 branch에도 저장해주어야 한다.
이때 commit과 #13의 push를 사용해야한다.
여기서 원격저장소란 마스터 레파지토리가 아니다.
이또한 헷갈리지말자.

# 12 git fetch를 입력한다. ** 반드시 push전에 해줘야됨.

페치(fetch)는 원격 저장소의 커밋들을 로컬 저장소로 가져온다. 협업할때 내가 커밋하고 push하기전에
이미 다른 동료가 commit하고 push한 내용으로 충돌할 수 있는 코드를 미리 확인시켜준다.
이때 자동으로 병합(Merge)를 해주지 않기 때문에 본인이 직접 확인을 한 후에 병합(Merge)하는 과정을 거쳐야한다.

#13 git push origin <타겟브랜치명>을 입력하여 fork뜬 repo branch 생성 및 로컬작업내용을 업데이트해준다.

타겟 브랜치명이란 ?
<수정할 내용이 반영되어할 브랜치명 = 보통 현재 브랜치명> 을 입력한다.

처음엔 뭘 몰라서 main이나 origin master로 브랜치명을 이상하게 설정해서 작업내용저장 유실에러가 발생했다.
origin main 이라고 해도 안된다.
주의하자. 이게 git에서 main branch에 바로 commit내용을 push하지 못하도록 막아서 그런거다.
이렇게 push를해야 master 레파지토리에 pr(Pull Request)를 생성할 수 있다.
commit push는 pr이 아니다. 혼동하지말자.

#14 작업내용이 저장된 레파지토리 깃헙페이지로 브라우저를 열어 접속한다.

 

#15 pr(Pull Request)를 보낼때, origin/main 으로 pr을 보낸다.

보통 디폴트값으로 base 브랜치명이 main으로 되어 있다.
branch는 삭젭pr 병합시 삭제해도 좋다. 재사용할꺼면 삭제안해도 된다.

#16 pr을 관리자가 merge한다.

 

#17 다시 터미널을 연다.

#5 내용 참조

#18 git log --all --oneline --graph --decorate을 터미널창에 입력한다.

commit 메세지가 잘 출력이 되는지 확인 및 현재 branch가 타겟 브랜치명으로 되어있는지 체크한다.

#19 git pull origin main 또는 git pull 을 입력한다.

pr이 잘 반영되었는지 확인하기 위해 최신 업데이트 된 내용을 한꺼번에 반영할때 사용하는 명령문.
꼭 해주어야됨.

#20 git branch 를 입력해 현재 branch가 main으로 변동되었는지 확인한다.

main으로 되어있으면 정상적으로 pull 된 것을 증명하기 때문에 확인하다.

# 알아두면 좋은거

1. 원격저장소 push 단축키

- 우측 바의 두번째 버튼을 누른 후 소스제어 창이 아래와 같이 뜨면 소스제어 이름 옆에 ' . . . ' 버튼을 누른다.
- 아래와 같이 노란색으로 표시된 푸시를 클릭한다.

2. 부모 저장소에서 내용 가져올때

git remote -v 
git fetch upstream main하면 내용을 받아오면
git checkout main  main 기준으로 해야된다
git pull upstream main 현재 로컬 main브랜치에 다 땡겨오게 됨
git push main 

git checkout -b '신규브랜치명' 

 

Copyright ⓒ 2021 by bluevulpe All Contents cannot be copied without permission.

728x90

댓글