commit 하기 전에 수정 전과 수정 후 코드를 비교해서 어떤 게 수정 되었는지 보고 싶으면 git diff
명령어를 쓰면 된다. 물론, 이 명령어는 터미널에 쳐야 한다. 그럼 현재 파일이 최근 commit과 어떤 부분이 달라졌는지를 보여준다.
git diff commit_ID
최근 commit이 아니라 예전에 했던 commit과 현재 파일을 비교하고 싶으면 commit ID를 써주면 된다. commit ID는 이전에 봤던 git log --oneline으로 로그 데이터를 확인해봤을 때 맨앞에 있는 문자+숫자이다.
git diff commit_ID1 commit ID_2
이전에 생성했던 특정한 commit 두 개를 비교할 수도 있다.
git diff 대신에 git difftool을 사용하면 시각적으로 차이점을 확실하게 보여주지만, 이것도 Vim 에디터로 열리기 때문에 그냥 VS Code에 있는 extensions을 설치하는게 낫다.
확장 또는 Extensions이라는 왼쪽 메뉴를 클릭해서 Git Graph를 검색한다. Git Graph를 설치하면 git 메뉴를 열었을 때 새로운 아이콘이 생긴다. 그 아이콘을 누르면 Git Graph가 열리면서 아래와 같이 시각적으로 commit 내역을 살펴볼 수 있다.
개발을 하다보면 갑자기 새로운 기능을 추가하거나, 기존 기능을 없애보고 싶거나, 새로운 시도를 해야하는 경우가 있을 수 있다. 이럴 때 원본 파일에서 코드를 추가하고 commit을 하게 되면 이전에 구현했던 다른 기능들에 오류가 발생할 위험이 있다. 그래서 git은 기존 프로젝트를 그대로 두고 프로젝트의 복사본을 만들 수 있도록 branch라는 기능을 제공한다.
그래서 branch는 곧 내가 지금하고 있었던 프로젝트의 사본이라고 생각하면 된다.
다음을 터미널에 입력하면 현재 프로젝트의 사본이 생성된다.git branch 브랜치1
기본적으로 git init을 하면 main branch에서 개발을 하게 되는데 새로 만든 '브랜치1'로 이동하고 싶으면 다음을 터미널에 입력하면 된다.git switch 브랜치1
다시 main branch로 돌아가고 싶으면 마찬가지로git switch main
을 입력하면 된다.
내가 지금 어떤 브랜치에 있는지 기억이 나지 안으면 git status
로 확인하면 된다.
새로운 branch인 '브랜치1'로 이동했으면 이제 새로 코드를 작성하거나, 기존의 코드를 수정하면 된다. 이 브랜치에서도 수정한 버전을 commit을 통해 생성할 수 있다. '브랜치1'에서 commit을 해도 main branch에는 영향을 주지 않는다.
branch와 commit의 내역을 그래프로 보고 싶으면 아래처럼 git log를 쓰면 된다.git log --graph --oneline --all
방금까지 새로운 브랜치를 만들어서 새로운 기능을 개발했으면 메인 프로젝트가 위치한 main branch와 합쳐야 한다. branch끼리 합치는 것을 'merge'라고 한다.
merge를 하는 방법은 다음과 같다:
git switch main
으로 main 브랜치로 다시 이동한다git merge 브랜치1
로 브랜치를 합친다.만약에 main branch와 브랜치1 branch에서 같은 파일, 같은 줄을 수정했을 때 merge conflict가 발생한다. 이럴 때, VS Code에서는 Accept Current Change, Accept Incoming Change, Accept Both Changes 등의 옵션을 주는데 이 중에 적절한 옵션을 선택해주면 merge가 완료된다.
merge 후에는 add와 commit을 통해 버전 생성을 해주는 것을 잊지 말자.
개발 협업할 때 각자 브랜치를 파서 각자 맡은 부분의 코드를 짜고, 나중에 merge를 하면 branch의 기능을 효율적으로 사용할 수 있겠다.
여러 가지 확률분포 (1) (0) | 2024.05.09 |
---|---|
Git 사용법 (2) (0) | 2024.04.25 |
Git & Github 사용법 (1) (0) | 2024.04.25 |
"xcrun: error: invalid active developer path"오류 (0) | 2024.04.25 |