쏴아리의 딥러닝 스터디

git branch, checkout, merge 본문

Git

git branch, checkout, merge

말해보시개 2021. 5. 17. 22:30

git branch, checkout, merge

 

 

 

 

 git branch 

  git branch는 독립적으로 작업을 진행하기 위한 개념으로, 각 branch는 다른 brach와 관련 없이 작업을 진행합니다.

 

보통 master, develop, topic branch를 생성하여 형상관리를 합니다.

  • main branch : 배포용 안정적인 Branch 
  • topic branch: 기능 추가 같은 단위 작업을 위한 Branch 

 

1. branch 생성 방법

$git branch <new branch>

위의 명령어로 branch를 생성할 수 있습니다. 

 

 

2. 현재 Branch 확인 방법

$git branch

위의 명령어로 현재 branch를 확인할 수 있습니다 .

 

 

예제) topic_branch 생성하기

git branch 명령어를 통해 topic_branch를 생성합니다 .

$git branch topic_branch

 

현재 branch를 확인하겠습니다. 

$git branch

현재 master branch에 있고, topic_branch가 생성되었음을 확인하였습니다. 

 

 

 

 

 

 

 git checkout: branch, snapshop 전환

1. branch 전환 

  git checkout 명령어는 branch를 전환하는데 사용됩니다. 

$git checkout <브랜치 명>

 

 

예제) topic_branch로 checkout

git checkout 명령어를 통해 topic_branch로 이동한 후, git branch 명령어를 통해 현재 branch로 확인합니다. 

$git checkout topic_branch
$git branch

Switched to branch 'topic_branch' 메시지를 통해 checkout 되었음을 확인합니다. 

git branch 명령어를 통해서 topic_branch로 현재 branch를 다시 확인합니다. 

 

 

2. snapshop 전환 

git checkout 명령어는 branch를 전환하는데 사용되며, git log로 확인한 snapshot으로 전환하는데도 사용이 가능합니다.

$git checkout <snapshot hash>

 

 

예제) git checkout을 통해 "commit2" snapshoit으로 전환하기 

1. deepmal2.txt 파일을 생성한 뒤, commit 수행(commit 메시지: "commit2")

ubuntu에서 touch 명령어를 통해 deepmal2.txt 파일을 생성합니다. 

git add 명령어를 통해 deepmal2.txt를 staging area로 보냅니다.

git status 명령어를 통해 deepmal2.txt가 staging area에 있는지 확인합니다. 

$touch deepmal2.txt
$git add deepmal2.txt
$git status

 

git commit을 수행하여 staging area에 있는 deepmal2.txt를 repository로 보냅니다.(commit 메시지: "commit2")

ls 명령어를 통해 현재 디렉토리에 deepmal2.txt가 있음을 확인합니다. 

$git commit -m "commit2"
$ls

 

 

2. deepmal3.txt 파일을 생성한 뒤, commit 수행(commit 메시지: "commit3")ubuntu에서 touch 명령어를 통해 deepmal3.txt 파일을 생성합니다. 

git add 명령어를 통해 deepmal3.txt를 staging area로 보냅니다.

git status 명령어를 통해 deepmal3.txt가 staging area에 있는지 확인합니다. 

$touch deepmal3.txt
$git add deepmal3.txt
$git status

 

git commit을 수행하여 staging area에 있는 deepmal3.txt를 repository로 보냅니다.(commit 메시지: "commit3")

$git commit -m "commit3"

 

ls 명령어를 통해 현재 디렉토리에 deepmal2.txt, deepmal3.txt가 있음을 확인합니다. 

$ls

 

 

3. commit2로 snapshot을 checkout

git log 명령어를 통해 snapshop들을 확인합니다. 

$git log --pretty=oneline

현재 commit3 snapshot에 위치합니다. 

 

git checkout 명령어를 통해 commit2 메시지의 snapshot으로 이동합니다. 

$git checkout <commit2 메시지 snapshot>

HEAD is now at commit2 메시지를 통해, commit2 메시지의 snapshot으로 이동하였음을 확인합니다 .

 

 

git log를 통해 현재 snapshot이 commit2에 위치하고 있음을 확인 한 뒤, ls 명령어를 통해 commit2 snapshot에 있어야할 deepmal2.txt 파일이 현재 디렉토리에 있음을 확인합니다. 

$git log --pretty=oneline
$ls

 

 

 

 

 

 

 git merge

git merge는 branch를 병합하는 명령어입니다. 

 

예제) topic_branch에서의 작업을 마치고, master branch로 통합합니다. 

1. master branch로 이동하여 topic_brach를 병합합니다. 

git checkout 으로 master branch로 이동한 뒤, git merge 명령어를 통해 topic_branch와 merge 합니다.

$git checkout master
$git merge topic_branch

 

git log 명령어를 통해 master와 topic_branch가 병합되고 commit3 메시지의 현재 snapshot에 위치하고 있음을 확인합니다.

ls명령어를 통해 commit3의 repository에 존재해야할 deepmal2.txt, deepmal3.txt이 정상적으로 있음을 확인합니다. 

$git log --pretty=oneline
$ls

 

 

 

 

 

같이 보시면 좋아요.

 

포스팅 내용이 도움이 되었나요? 공감과 댓글은 큰 힘이 됩니다!

 

'Git' 카테고리의 다른 글

git add, git status, git commit, git log  (0) 2021.05.14
Ubuntu Git 설치, 초기설정 방법  (0) 2021.05.12
Comments