본문 바로가기
Wecode_Session/Git

Branch

by 2cong 2020. 4. 4.

git을 이용한 버전관리 flow

소스코드 clone --> 수정 --> staging --> commit

git 명령어 정리

git init

git repository를 만들기 위해 사용하는 명령어

git add

수정 사항을 staged 상태로 옮길 때 사용하는 명령어

git commit

staging된 파일을 commit 할 때 사용하는 명령어

git diff

수정사항이 적용됐는지 보여주는 명령어
staged된 수정사항은 볼 수 없음
modified된 파일들만 확인 가능

git status

파일의 현재 상태가 뭔지 알려주는 명령어
ex) modified file인지 staged file인지 알려줌

git log

commit 내역(commit history) 들을 보여주는 명령어
출력 포맷이 보기 어렵기 때문에 tig와 같은 tool 설치한 후 이용하면 편리함

git rm

원하는 파일을 git repository에서 삭제하는 명령어

git mv

git에 있는 파일 git repository 상에서 이동시킬 때 사용
주로 rename할 때 사용함

git branch

branch 생성할 때 사용하는 명령어
(branch에 대한 설명은 아래에서)

git checkout

어떤 branch를 checkout할 때 사용되는 명령어
checkout이란 사용할 브랜치를 지정하는 것을 의미함

Master & Branch

Master & Branch

Master는 기준이 되는 소스코드를 의미함

변경사항이 있을 때 기준이 되는 소스 코드를 변경하면 문제가 생길 수 있음


따라서 Master의 소스코드를 복사해서 복사본을 수정하는 것이 안전함

이렇게 사용하면 기존에 있는 소스에 영향 받지 않고 안전하게 관리 할 수 있음

 

이렇게 원본 코드를 복사하여 만든 독립적인 개발환경을 branch라고 함
Branch를 사용하면 Master의 소스 코드 또는 다른 Branch들과는 상관없이 독립적으로 개발을 진행할 수 있음

 

여러명이 같은 Master 소스코드를 변경할 때 유용한 기능


아래의 그림이 Master와 Branch를 나타내는 그림

  • 파란색 부분 Master (Master branch라고 함)
  • 초록색과 분홍색으로 표시된 부분 Branch (보통 feature branch라고 함)

수정할 내용이 생기면 Branch를 생성함
branch에서 작업한 후 작업이 끝나면 원본 소스 코드인 Master와 합치게 됨(Merge)

Merge

  • merge는 기존의 코드와 수정한 코드를 합치는 과정 (master branch에 feature branch를 병합)
  • 병합과정에 따라 충돌이 발생할 수 있음 (ex. 서로 다른 작업자가 같은 내용을 수정하였을 때 등 )
    • 충돌은 error가 아님
    • 충돌된 코드를 수정해주면 merge가 잘 진행됨

git branch 실습

1. git clone

터미널에 아래의 내용 입력
주소는 master branch의 github의 주소

git clone 주소

2. clone한 Master Branch로 이동

cd 명령어를 이용하여 master branch로 이동

cd original_master이름

3. Feature Branch 생성

git branch 명령어를 이용해 feature branch 생성
"feature/"라는 이름 붙이는것이 권장됨

아래의 예시와 같이 입력

git branch feature/jina

생성할 branch 이름을 적지 않고 아래와 같이 입력하면 branch 목록 볼 수 있음

git branch

4. Branch로 이동

git checkout 명령어를 이용하여 feature branch로 이동하기

터미널에 아래의 예시와 같이 입력

git checkout feature/jina  

5. 파일 생성

파일을 생성하는 명령어인 touch를 이용하여 feature branch에 파일을 만들어보면 아래와 같음

touch jina.txt 

위에서는 jina.txt라는 파일을 feature branch에 만든 것

6. 텍스트 수정

vim을 이용하여 jina.txt를 수정할 수 있음

vim jina.txt

vim 명령어

i

      • txt 삽입
      • txt 삽입을 끝내고 싶으면 ESC 키 눌러주기

 

:q

      • vim 나가기

 

 

:wq

      • 변경사항 저장하고 vim 나가기

 

:q!

    • 변경사항이 있어도 저장안하고 그냥 vim 나가기

 

 

7. 깃 상태를 확인하기

git status 명령어를 이용하여 현재 branch에 있는 파일의 상태를 알 수 있음

8. staged file 만들기

git add 명령어를 사용하여 수정한 내용을 staged file로 만들 수 있음

git add .

위의 예시와 같이 add . 을 이용함
. 은 수정사항 전부를 staged file로 만든다는 것을 의미

 

git status 명령어로 파일이 staging 되었는지 확인하기

9. 파일 commit 하기

git commit 명령어를 이용하여 파일을 commit할 수 있음

 

아래와 같이 사용함

git commit -m "내용"

위의 내용에는 변경사항을 적어둠

commit을 완료하면 git status로 작업이 잘 진행되었는지 확인

10. Push 하기

git push 명령어를 사용하여 feature 브랜치 내용을 github에 푸쉬하기

git push origin 브랜치명

위와 같이 사용함

여기서의 브랜치 명은 feature/jina 였기 때문에 아래의 예시처럼 입력하면 github에 푸쉬됨

git push origin feature/jina

11. 이후

11-1. merge

github에 push한 이후 feature branch와 master branch를 병합시키기

 

merge 되고 목적이 달성한 브랜치는 버리기

즉, 새로운 수정사항 생길 때 마다 새로운 브랜치 만들어서 작업하기

11-2. git pull

merge/수정된 사항을 받으려면

아래의 명령어를 이용하여 master branch로 이동하기

git checkout master

그 이후 git pull 명령어로 수정된 사항 다운받기

git pull

'Wecode_Session > Git' 카테고리의 다른 글

Git과 Github  (0) 2020.03.22

댓글