본문 바로가기

GIT

GIT - branch

*clear :  git bash 터미널의 기록된 코드를 지워 깨끗하게 만듬

*git log --all --graph --oneline  

  - 앞으로 우리가 만들 모든 브랜치가 보일 all

  - 시각적으로 로그가보여짐 graph

  - 버전이 한줄로 보여지게함 oneline

 

1. manual 이라는 폴더를 생성하고 해당 폴더를 Git으로 관리한다

 

 

2. work.txt파일을 3가지 버전으로 Git에 저장한다

 

 

3.Branch

 3-1. 기본설정

**git log --all --graph --oneline

  - 앞으로 우리가 만들 모든 브랜치가 보일 all

  - 시각적으로 로그가보여짐 graph

  - 버전이 한줄로 보여지게함 oneline

 

3-2. git branch 명령어

- 위 명령어를 입력하면 우리가 가지고있는 branch들의 목록을 보여주는데 

  처음엔 *master 가 나온다 이것은 지금까지 우리가 master라는 기본branch안에서 작업해오고 있었다는 뜻이고

  *은 현재 우리가 사용중인 branch를 나타낸다

 

3-3. 새로운 branch 만들기 

- git branch apple명령어를 입력하면 apple이라는 새로운 branch를 만든다

- git branch로 다시 확인해보면 apple이라는 branch가 생겼고 git log에도 apple이 추가 되었다.

 여기서 HEAD가 master를 가르키는 것은 현재 우리의 branch가 master라는 뜻이다(좌측*과 같음)

 

3-4. 다수의 branch생성 및 파일 수정

(1) - git branch로 samsung과 lg를 추가로 만들고

(2) - git log를 해보면 현재 git의 브런치상태가 HEAD -> master, samsung, lg, apple 상태인 것을 알 수 있다

(3) - work.txt 파일을 master content4라는 텍스트를 추가로 넣어 수정하여 working tree상태로 만들고

(4) - git commit -am 명령어로 add와 commit을 한번에 하여 master work 4라는 이름을 준다

(5) - git log를 해보면 현재 브런치인 master브랜치만 따로 위에서 수정하고 커밋한 master work 4 버전을 가지고 있다

3-5. branch switch

  -git checkout 바꿀브런치이름 (apple) 을 하게되면 git log에서 볼 수 있듯 HEAD가 apple 브런치를 가르키면서

   해당 버전인 work 3 상태로 파일도 회귀하여 master content4가 사라진 것을 볼 수 있다

 

 

3-6. branch 가지치기

 (1) - git checkout apple 로 현재 사용중인 branch를 apple로 옮기고 (HEAD -> apple) 

 (2) - work 3버전에 머물러 있던 apple브런치의 work.txt파일에 apple content4 텍스트를 추가하고 apple.txt 파일도 추가로 생성한다

 (3) - 저장 후 git add . 으로 현재 디렉토리에 있는 (2) 에서 변경된 모든것을 staging area로 add하고

 (4) - git commit -m "apple work 4 " 명령어로 apple work 4 버전으로 commit한다

 (5) - 그리고 git log를 살펴보면 HEAD가 apple을 가르키며 apple work 4버전이 새로 생겼고 이것은 work3 버전에서

      파생된것임을 나타내는 그래프가 보인다

 

(6) - 같은 방식으로 각 branch마다 가지를 쳐보자

 

'GIT' 카테고리의 다른 글

GIT - branch(3 way merge)  (0) 2020.12.11
GIT - branch (merge)  (0) 2020.12.05
GIT - git reset, git revert  (0) 2020.12.04
GIT - git bash 단축키 및 명령어 중간정리  (0) 2020.11.30
GIT - 명령어 commit -am , commit(nano에디터)  (0) 2020.11.30