본문 바로가기
Web Development/Front End 관련 개념 정리

git & github 사용하기

by Krystal K 2023. 4. 12.

시작하기에 앞서...

git과 github를 사용하는 이유?

git버전관리를 효율적으로 할 수 있는 도구

개발 과정에서 기록을 남기고 추후 다시 되돌아가야하는 상황에서 이정표 역할을 한다.

 

github는 hub라는 글자 그대로 개발되는 과정과 프로덕트를 온라인 저장소에 저장하고 공유할 수 있도록 해준다.

git과 밀접한 상호작용이 있으나 같은 것은 아니다.

다수가 협업하여 개발하는 상황에서 편리성을 제공한다.

언제 어떤 개발을 누가 했는지 관리할 수 있다.

코드 리뷰가 가능하고 안전하게 코드들을 merge 할 수 있다.


< git과 github 사용하기 >

사용하는 방법은 크게 두가지 상황에 따라 나뉜다.

1. 새로운 프로젝트를 시작할 경우

2. 이미 진행중인 프로젝트를 개발할 경우

 

1. 새로운 프로젝트를 시작할 경우

새로운 프로젝트를 시작할 경우에는 기존에 작업했던 파일이나 폴더가 없기 때문에 작업할 공간을 먼저 생성해야한다.

개발을 할때는 기능별로 개발 공간을 독립적으로 생성해서 개발을 진행한다.

이렇게 하면 코드들이 섞이는걸 방지하고, 혹시 이전의 코드들을 다시 사용해야 하는 상황을 대비할 수 있다.

 

Git bash를 이용해 디렉토리(작업할 공간)를 생성할 수 있다.

 

*명령어 정리*

더보기
  • pwd : 현재 위치 확인
  • mkdir : 디렉토리 생성
  • cd : 디렉토리 변경
  • ls : 현재 폴더에 있는 내역 확인
  • ls -al : 숨겨진 파일까지 전부 확인
  • vi 파일이름 : 파일 수정 (파일 수정창이 뜬다.)
  • i :  insert모드로 전환 후 내용 입력 가능
  • 변경 사항을 적고 esc 키를 누른 후 :wq를 하면 수정창 나가기가 된다.

 

Part 1. 새로운 Directory를 생성하고 작업하기

1. 새로운 Directory를 local에 생성한다.

 

현재 내 위치를 확인한다 -> git bash에 pwd 명령어를 입력한다.

작업하고자 하는 곳에 directory를 생성한다. -> mkdir 

해당 directory로 이동한다. -> cd 디렉토리명

 

 

2. 해당 작업 폴더에 위치한 상태에서 코드 기록을 추적하고 저장할 수 있도록 초기 셋팅을 한다.

 

pwd를 입력해서 작업하고자 하는 directory위치가 맞는지 다시 한번 확인한다.

git init을 입력한다.

ls -al을 입력해서 해당 폴더 안에 숨길 파일로 .git이 저장되었는지 확인한다.

git파일이 저장되어 있으면 해당 폴더에서 작업을 진행한다.

 

 

Part 2. 작업한 코드를 local에서 remote 저장소로 push하기

local에서 작업한 파일들을 remote 저장소(github)로 push(업로드)해야한다.

 

local -> remote로 push 하기 전에 거쳐야 하는 과정 

add -> commit -> push

 

그리고 그 사이에 

add -> status( add가 잘 되었는지 확인) -> commit -> log(commit이 잘 되었는지 확인) -> push

현재 상태를 확인하는 과정이 있다.

 

 

*명령어 정리*

더보기

add란?

작업한 파일을 staging area에 저장하는 단계

쉽게 설명하면 commit하기 전에 중간 저장하는 단계이다.

 

git add . 은 변경사항이 있는 모든 파일을 저장한다.

git add [파일이름.확장자명] 은 해당 파일을 저장한다.

add된 파일들은 commit을 할 수 있다.

 

 

status란?

git status add된 변경사항 확인할 때 사용한다.

 

 

commit이란?

commit은 local에 변경된 파일을 저장함으로써 기록을 남길 수 있도록 한다.

commit message를 통해 어떤 변경 사항이 생겼는지 상세하게 기록할 수 있다.

다만, 줄글 형식이 아닌 간결한 문체로 기록해야한다. (가독성을 위해)

이를 이용하면 버전관리가 용이해진다. 

일종의 코드 이정표 역할이다.

 

git commit -m "commit message" 를 입력하면 commit이 된다.

이때 message는 한 줄로 간결하게 기록한다.

 

만약 자세하게 여러줄에 걸쳐 기록할 경우,

git commit 입력후 밑에 뜨는 vim 입력란에 기입한다.

git bash명령어와 같이 :wq 로 나갈 수 있다

 

 

log란?

git log commit한 기록을 확인할 수 있다. 

 

 

push란?

commit이 된 파일들은 local에 저장된 상태이다.

이를 remote 저장소로 업로드하는 것을 push라고 한다.

 

 

 

1. push를 하기전에 local 저장소와 remote 저장소를 연결해야 한다.

 

내 github 에서 새로운 Repository를 생성하면 위의 이미지와 같이

…or push an existing repository from the command line라는 문구 아래에 복사할 수 있는 

command line이 있다.

git bash에 그대로 입력하면 repository가 연결된다.

 

연결이 잘 되었는지 확인하기

git remote -v 를 입력하고

 

origin  https://github.com/reveur96/git_practice.git (fetch)
origin  https://github.com/reveur96/git_practice.git (push)

 

위와 같이 뜨면 연결이 된 것이다.

https주소는 본인이 연결하려고 하는 repository주소이다.

 

 

 2. 해당 repository 안에 내가 개발을 이어갈 branch를 생성한다.

 

repository에 바로 작업한 코드를 올리는게 아니다.

각각의 기능별로 branch를 생성하고 branch에 push를 한다.

그리고 더이상의 수정사항이 없을 때 main 또는 master에 merge(합병)을 한다.

절대로 main에 바로 push하지 않는다.

코드의 유지보수 및 안전성을 위해 반드시 지켜야 하는 규칙이다.

 

branch란?

main( 최종완성본)으로 merge(코드합병)하기 전에 각 기능별로 개발할 독립적인 공간을 의미한다.

버전관리를 위해 반드시 기능을 개발하기전에 branch를 생성해서 해당 기능은 해당 브랜치에서만 개발한다.

 

branch 생성하기

remote storage인 레파지토리안에 branch를 생성한다. 

git branch [브랜치 이름] 를 입력하면 해당 이름의 브랜치가 생성된다.

 

현재 내가 위치한 branch 확인하기 

git branch 입력하면 현재 내가 어떤 branch에 위치해 있는지 확인할 수 있다.

 

브랜치에서 다른 브랜치로 이동해야 할 경우

A기능을 개발할 때 A branch를 사용하다가 B기능 개발을 위해 B branch를 사용해야 할 경우 브랜치를 이동한다.

그렇지 않으면 코드가 그대로 이어져 버전관리가 어렵다.

git checkout [이동할 브랜치 이름] 를 입력하면 해당 branch로 이동한다.

checkout 이라고 해서 현재 브랜치가 아니라 이동할 브랜치 이름이다.

제대로 이동되었는지 다시 한번 확인한다.

git branch 입력해서 이동하려고 했던 브랜치의 이름이 나오면 성공이다.

 

 

3. local에서 작업한 코드를 repository의 해당 branch로 업로드한다.

 

git push origin [브랜치 이름] 를 입력한다.

이때 origin은 repository 주소를 일컫는 별칭이다.

긴 https 주소 대신 간편하게 사용할 수 있다.

 

 

4. push가 잘 되었는지 확인한다.

github의 해당 repository에 들어가면 push된 request를 확인할 수 있다.


 

2. 이미 진행중인 프로젝트를 이어서 개발할 때

이미 진행 중인 프로젝트의 파일을 remote로 부터 local로 내려받아 작업한다.

 

1. remote에서 local로 파일 내려받기

기본에 작업하던 내용이 없을 경우 전체 작업 파일을 모두 내려받는 작업이 필요하다.

이럴 경우 clone을 한다.

 github에서 clone하고자 하는 레파지토리에 접근한다.

우측에 위치한 초록색 copy 버튼을 누른다.

copy에서 clone with HTTPS 아래에 URL을 복사한다.

 

git clone 해당 URL을 입력하면 된다.

github의 repository와 동일한 이름의 폴더가 저장된다.

 

2. 개발을 진행한 후 add -> commit -> push 과정을 거친다.

 push한 후 pull request를 통해 코드 리뷰가 진행된다.

 

pull request(PR)이란?

개발에 대한 설명을 함께 작성해서 main혹은 master에 merge할 수 있을지 적합성을 확인한다.

수정사항이 있을 경우 해당 리뷰를 보고 local에서 수정을 거쳐 다시 push하고 PR을 거친다.

그후 더이상의 수정사항이 없을 경우, 권한자의 승인을 통해 merge가 이루어진다.

 

전체 과정을 간략하게 정리

commit -> push -> pull request 에서 code review -> local에서 다시 수정 -> commit -> push ->

수정사항이 없을 때까지 반복 => 더이상 없을 경우, 최종적으로 merge가 이루어짐

 

 

잘못된 정보가 있다면 댓글로 피드백주세요. 확인 후 수정하겠습니다^-^

더 정확한 정보 혹은 더 효율적인 방식이 있을 경우 댓글로 의견을 공유해주세요!

728x90