본문 바로가기

Git & GitHub & sourceTree

브랜치 실습 때리자(2)

앞에서는 기본적인 이론을 알았다면 지금부터는 직접 해보았고

같이 따라해보기도 하지만 내가 혼자서 잠시 해보는것도 중요한거 같다!

하다보면 이상한것도 발견하고 왜 이렇게 뜨는지에 대해서 궁금해져서 나중에 덜 당황할듯..?ㅋㅋㅋ😗😗

 


1.특정 브랜치

 ①HEAD : 현재 작업중인 브랜치의 커밋을 가리킨다.

                 내가 어디에서 작업중인지, 그 작업중인 브랜치에서 최신커밋을 말함

 ②CheckOut: 특정브랜치에서 작업할 수 있도록 작업 환경을 바꾸는 것

                        head의 위치를 특정브랜치의 최신커밋으로 옮기는것을 말한다.

     =>ex) 내가 master 브랜치 2번커밋에서 작업을 하다가 second브랜치 2번 커밋으로 넘어가고 싶을때 체크아웃한다.

 

1-1체크아웃 실습

👆처음에 만들면 자동으로 master브랜치인것을 확인 할 수 있고second라는 새로운 브랜치를 만들었다.

 

 

 

아직 second브랜치에 커밋을 아무것도 하지 않은 상황

 

▷저렇게 하고 second브랜치에 커밋을 했다.저기 3은 커밋의 숫자!(✅second는 master커밋까지 받기때문에 3개임)

 

=> second branch에서는 이때까지 한 커밋이 다 있지만 master branch에서는 어떻게 될런지?🤔
   : master브랜치로 들어가서 탐색기 확인해보면 second branch에서 만든 파일은 없고 딱 그전까지만 파일안에 있는 것을       확인이 가능하다.(탐색기 확인하니까 쉽게 볼 수 있어서 좋았다)

 

 

2.병합하기

브랜치를 merge(=병합)한다고 함.

병합 이미지(왼쪽에서 부터 1번 2번)

이렇게 두가지가 있다.👆

1.second브랜치와 fast forward merge해보기(빨간색)
-master브랜치와 second 브랜치를 합치고나서 master브랜치에서 탐색기를 눌러보면 second커밋이 들어와있는것을 

 확인 할 수 있다.

 (master branch는 가만히 있다가 빠르게 second branch의 정보를 받는 것이므로 우린 이걸보고 fast forward merge라고 한다.)
 그리고나서 합쳐진 second브랜치는 필요없기때문에 삭제해도괜찮다.

 

2.third브랜치와 merge해보기(fast forward branchX)
새롭게 third브랜치를 생성하고 그 브랜치에 A,B폴더 2개를 만들어서 커밋 해준다.

그사이에 master에도 커밋을 해주고나서 병합을하면

이렇게 모든 내용이 병합된것을 볼 수 있다.

 

3.충돌

혼자 깃을 공부하다가 제일 당황하고 당최 어떻게 해야하는건지 곤란했던 충돌 부분이다.ㅋㅋㅋ

 

충돌: 병합하려는 두 브랜치가 같은 내용을 다르게 수정한 상황

 (=>이러면 깃도 결정을 못내려서 우리에게 알려줌, 우리가 선별해야함🤔)


-대처법 : 1.어떤 것을 반영할지 직접 선별한다, 
                2.다시 커밋한다.

 

3-1.충돌실습

<<<<<<< HEAD
master           =>현재 브랜치(master)내용
=======
foo                => foo 브랜치 내용

>>>>>>> second


👆충돌 후 탐색기 들어가보면 나와있는 상황, 깃이 알려주는 것

대처법 중 1번 #사진 스크린샷

이 방법은 내가 가지고 있는 파일로 하겠다라는 결론을 내리고 충돌을 해결하는 것이다.

 그리고 나서 파일상태 목록에 들어가면 커밋메세지가 자동으로 적혀있는데 그걸 커밋해주면 자동으로 병합완료!!

(=>😗😗사실 이부분이 나는 어떻게되나 제일 궁금했는데 알아서 다 되어있어서 편했다...!)

 

4.브랜치 재배치

후진 내그림 실력....

위에 그림처럼 두번째에서 브랜치를 나눈것을 4번째에서 옮긴것으로 재배치를 할 수 있다.

 

 

: 재배치하고자 하는 브랜치(이미지에서는 second branch)에 체크아웃하고 재배치를 하러 갈 브랜치의 오른쪽 버튼

  누르면 재배치가 있다. 그걸 누르면됨

위에 내가 그린 후진 그림과 모양이 똑같다는 걸 볼 수 있다

 


🟢🟡🔴여기서 second 브랜치 말고 master브랜치로 가게 되면

second브랜치가 foo이름으로 되어있다

위의 이미지와 같이 뜨게 되는데 저기 맨 윗줄에 '커밋하지 않은 변경사항'이 새로 생겼다.

그래서 보니까

저기 보면 foo브랜치가 처음에 있던 곳에서 다시 새로 재배치한 사이동안 master브랜치에서 만든 내용들이 그 안에 들어가 있었다.

 

처음에 저거보고 잘못 재배치 된 줄 알고 혼자 새로해보고 이것도 저장해보고 저것도 삭제해보고 다했는데 

잘보니까 딱 그 사이에 있던 내용들이 변경사항으로 올라가있는 것을 볼 수 있었다.

 

✅이해한거

새로 재배치가 되면서 그 동안 만든내용물들이 없어져있다고 한다. 위 이미지에서 확인이 가능하다

(다른사람들은 뭐지 라고 할텐데 내 공부를 위한거니까 일단ㅋㅋㅋ)😎

 

오늘은 브랜치에 대해서 공부를 했는데 아직까지 바로 써먹으라면 쫌 더듬되고할꺼같지만 그래도 하나 더 깃허브에 대해서 알아간다....ㅎ

블로그를 적으면서 공부하니까 진짜 두배로 공부하는 느낌이라 이해도 더 잘되는듯..

 

'Git & GitHub & sourceTree' 카테고리의 다른 글

GitHub(1)  (0) 2022.11.06
브랜치란?(1)  (0) 2022.11.02
Git(2)✍️  (0) 2022.11.02
Git🤔  (0) 2022.11.02
깃 처음 시작하기  (0) 2022.11.01