[생활코딩] 'Git CLI-Branch&Conflict'에 대한 정리본(수정중)


새롭게 생활코딩에 올라온 GIT CLI Branch&Conflict를 공부하려 한다. 특히 내가 나중에 딱보고 쓸 수 있게끔 적어놓으려한다.


  • 20.07.11 첫 글
  • 이후 수정 예정중

생활코딩 : Git CLI-버젼관리 을 보고 공부한다.

고객사의 요구마다 요구하는 파일 관리 문제를 어떻게 해결하는가에 대한 걸 branch가 해결해 준다.

커버 페이지

  • branch : 가지. 복제본이 필요한 경우 ex) 고객사가 생길 경우, 고객사마다 요구가 다르다면, 고객사마다 디렉토리가 필요하다. 그에 파생되는 넘기고 합치고 이런 문제들속에서 브랜치를 이용하면 쉽게 해결할수 있다.

  • conflict : 충돌. 깃이 진짜 필요한 이유

실습준비

  • mkdir manual > cd manual > git init > ls -al(.git생성 확인하고) > nano work.txt > content 1 입력, ctrl+x, y, 엔터 > git status(파일 생성되었는지 확인) > git add(명시적 버젼 관리) > git commit -m "work 1"(새로운 버젼 만듦) > git log로 확인 > nano work.txt로 또 들어가서 content 1 아래에 content 2 입력 > git commit -am "work 2" > 똑같이 한번 더 content 3, work 3 커밋해준다. > git log(로그 확인) > git log -p(각 버젼별로 차이)
  • 학습 목적 : ex. 고객사마다 다른 사용설명서를 제공해야 한다면 메뉴얼이라는 디렉토리를 고객사이름으로 만들어야한다. 그문제를 브랜치가 어떻게 해결하는지 알아가자.

브랜치의 사용법 강의 1

  • 수업소개 : 브랜치를 만들고, 열람하고, 사용하는 방법을 살펴보자.
  • git branch(*master가 나온다. master는 저장소를 만들면 최초를 뜻함.) 아직은 master만 나온다.
  • git branch apple 후에 git branch 를 치면 apple이라고 나온다. 그리고 그아래 *master가 나온거는 아직도 master에 속해있는 상태라는 뜻
  • 새로운 화면에서 켜서 git log -all --graph --oneline를 입력하면(상황 볼라고)을 로그 내용을 자세히 볼수 있는데(graph는 그림처럼 보여주는건가 봄. 중요하지 x) 추가된 apple이 나오고, 중요한건 HEAD -> master라는 건(가르키고있다) 현재 우리가 master에 속해있는 상태다 라는 뜻이다.
  • git branch google, git branch ms`를 써본다.
  • 새로운 화면에서 q 눌러서 나가고 또 git log -all --graph --oneline를 클릭한다. 그러면 3개가 다 아까 만든 work3다.
  • git commit -am "master work 4" 입력하고 새로운 화면에서 로그 확인 하면 master만 “master work 4”이고 다른 google, apple, ms 같은 브랜치는 “work 3”에 머물러있다.
  • 이 코드 치기 전에 work.txt파일을 vscode로 켜놓고 변화를 보면 된다. git checkout apple이라고 입력하면 HEAD가 apple로 간다. apple은 “work 3” 시대이다. ```git checkout master 라고 치면 다시 “master work 4” 시대로 돌아간다.
  • 신기하다. 대단하다.

브랜치의 사용법 강의 2

  • 애플 브랜치로 일단 다시 가보자. git checkout apple 입력. vscode에서 work.txt에 “apple content 4” 텍스트 입력. 새롭게 apple.txt를 만들어서 “apple work 4”라고 텍스트 입력. git add . > git commit -m "apple work 4" 라고 입력. 그리고 새로운 화면에서 git log -all --graph --oneline 입력하면 그래프 모양으로와 \ 이것들로 부모가 누군지 가르킨다.(현 부모는 work 3버젼)
  • 똑같이 google도 위에 애플 한거처럼 하면 그래프 모양으로 부모는 work 3(현재 ms만 남아있다.)

  • 또 똑같이 ms도 해주면 똑같이 된다.

  • 브랜치를 통해서 브랜치에서 작업했던 내용으로 순간이동 할 수 있다. 그리고 더이상 저장소마다 카피를 할필요가 없다. 하나의 저장소 안에서 공통의 작업을 공유하면서도 각자 자신의 작업을 할수 있는 평행의 줄을 만들어준다. 이것이 깃이 주는 혁명적인 기능이다.





© 2018. by statssy

Powered by statssy