[생활코딩] 'Git CLI-Branch&Conflict'에 대한 정리본(수정중)
in Development on Git
새롭게 생활코딩에 올라온 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도 해주면 똑같이 된다.
- 브랜치를 통해서 브랜치에서 작업했던 내용으로 순간이동 할 수 있다. 그리고 더이상 저장소마다 카피를 할필요가 없다. 하나의 저장소 안에서 공통의 작업을 공유하면서도 각자 자신의 작업을 할수 있는 평행의 줄을 만들어준다. 이것이 깃이 주는 혁명적인 기능이다.