Git branch

유명준·2023년 9월 10일
0

Git 공부내용 정리

목록 보기
2/3
post-thumbnail

작업이 분기되는 것을 branch를 만든다고 표현한다.

git commit -a 주의사항 : 아직 한번도 add가 되지 않은 파일(버전관리가 시작되지 않은 파일)은 자동으로 add가 되지 않는다.

git branch
: 현재 내가 사용하고 있는 브랜치(앞에 별이 붙어있고 초록색 글씨로 나타난다) + 브랜치리스트를 보여줌

git branch (브랜치명)
: 새로운 브랜치를 생성한다.

git checkout (브랜치명)
: 브랜치명에 적힌 브랜치로 이동한다. -> 윈도우 탐색기를 켜두고 현재 브랜치에서 vim으로 파일 생성 후 다른 브랜치로 이동하면 만들었던 파일이 사라진 것을 볼 수 있다. 이 파일은 원래 브랜치로 복귀하면 다시 보인다.

git log --branches --decorate
: 각 브랜치의 최신 커밋을 보여준다. 그리고 HEAD ->를 통해서 현재 어떤 브랜치에 체크아웃 상태인지 확인 할 수 있다.

git log --branches --decorate --graph
: 전체적인 커밋의 흐름을 볼 수 있다. (다른 브랜치와 어디서 분기 되었는지 다른 브랜치는 어디서 커밋했는지까지)

git log --branches --decorate --graph --oneline
: 위에 것을 더 간결하게 볼 수 있다.

git log 브랜치1..브랜치2
: 브랜치1과 2사이의 차이점을 보여준다. (뒤에 -p를 붙이면 소스코드 상의 차이도 보여준다)

git diff 브랜치1..브랜치2
: 각각의 브랜치의 현재 상태를 비교할 수 있다.

git merge 브랜치1
: 브랜치1을 현재 브랜치로 가져온다.
-> 커밋 완료 창이 뜨면 :wq로 나오기

git branch -d 브랜치1
: 브랜치1을 삭제한다.

git branch -D 브랜치1
: 브랜치 강제 지우기

git merge 브랜치1
: 현재 브랜치와 머지하려는 브랜치의 작업 내용이 다를 경우 병합 된다. (작업한 파일이 다를 경우)

하지만 작업한 파일이 같으면 문제가 생긴다. (수정한 위치가 다르다면 자동으로 합친다.)
같은 부분을 수정할 때는 conflict가 뜨며 자동머지가 안된다. -> 이 때는 vim으로 내용을 수정해줘야 한다. 빔으로 해당 파일을 열어보면 아래와 같은 화면을 볼 수 있다.

<<<<<<<<<<<<<<< HEAD -> 현재 브랜치를 표현
내용 -> 현재 브랜치의 내용
============= -> 구분자(기준)
내용2 -> 머지하려는 브랜치의 내용
.>>>>>>>>>>>>>>>> 브랜치1 -> 머지하려는 브랜치명

이렇게 충돌이 난 내용을 내가 원하는대로 수정한 후 -> git add 수정된 파일 -> git commit 하면 conflict가 수정됐다는 도움말이 뜬다. 이렇게 되면 머지가 완료된 것이다.

profile
백엔드 개발자가 되기 위해 노력하는 개발자 지망생입니다.

0개의 댓글