CodeGym /자바 코스 /Frontend SELF KO /IntelliJ IDEA에서 git 브랜치 작업하기

IntelliJ IDEA에서 git 브랜치 작업하기

Frontend SELF KO
레벨 20 , 레슨 3
사용 가능

11.1 Git의 브랜치

Git에서 브랜치(branch) 작업하기는 버전 관리를 할 때 중요한 부분 중 하나로, 하나의 리포지토리에서 여러 개발 라인을 병행할 수 있게 해줘. 브랜칭은 Git을 협업, 실험 및 프로젝트의 여러 버전을 관리하는 강력한 도구로 만들어줘.

Git의 브랜치

Git의 브랜치를 폴더와 같이 생각해도 돼, 여기서 Git은 너의 프로젝트를 복사해. 너의 프로젝트의 메인 폴더가 너의 로컬 리포지토리에 있어 — master, 그리고 Git은 이 폴더를 복사해서 시험해보도록 하고, 잘 작동하는 주 코드를 망치지 않도록 해줄 수 있어. 이런 폴더 복사를 브랜치 — branches라고 불러.

브랜치는 코드의 대안이야. 예를 들어, 큰 프로젝트에서 뭔가를 변경하고 싶거나, 완전히 확신하지 않는 실험을 하고 싶다고 쳐. Git 없이 어떻게 할까?

프로젝트를 다른 폴더에 복사하고 거기서 모든 것을 시도해보는 방법도 있겠지. 결과가 마음에 들면 주 폴더로 복사하고, 마음에 들지 않으면 잊어버리거나 아예 삭제할 수도 있어.

또는 실생활에서 예를 들어볼게. 책을 쓰는 과정 같아:

  1. 책의 원고가 있어 (메인 브랜치).
  2. 결말을 바꿔보고 싶어 (새 브랜치 생성).
  3. 새 결말을 다른 문서에 써 (새 브랜치에서 작업).
  4. 새 결말이 더 낫다면, 원고에 기존 결말을 대체해 (브랜치 병합).
  5. 새 결말이 있는 문서를 삭제해 (브랜치 삭제).

11.2 브랜치 생성하기

IntelliJ IDEA에서 브랜치를 만드는 것은 아주 쉬워:

브랜치 생성하기

브랜치 이름을 입력해:

브랜치 생성하기

IntelliJ IDEA는 메뉴 상단에 현재 브랜치 이름을 바로 보여줘:

브랜치 생성하기

그 전에 뭐였을까?

첫 번째이자 메인 브랜치 — master 이름이 있었어.

이제는 test가 표시되는데, 이것은 Git이 (IntelliJ IDEA의 지도 아래에서) 새로운 브랜치를 만들고 바로 그곳으로 전환되었다는 것을 의미해.

이제 현재 브랜치(test)에서 main.html 파일에 뭔가 코드를 추가하고 커밋하자:

브랜치 생성하기

11.3 브랜치 간 전환

1단계. 브랜치를 선택해.

이제 이전 브랜치로 전환해 볼게. 상단 메뉴를 클릭하고 무엇이 보이는지 보자:

브랜치 간 전환

겁먹지 마 — 여기서 모든 게 간단해:

Local — 이것은 너의 로컬 git 리포지토리의 브랜치 목록이야. 여기 두 개가 있어:

  • test
  • master

Remote — 이것은 GitHub 서버에 있는 너의 원격 리포지토리야. 우리가 변경사항을 푸시했지만, 새로운 브랜치는 없다고, 당연하지. 원격 리포지토리의 이름은 origin이고, 여기에 있는 건 master 브랜치뿐이야.

Recent — 이건 그냥 최근에 작업했던 브랜치 이름들의 목록이야: 이 항목은 IntelliJ IDEA가 편리성과 속도를 위해 추가한 거야.

이름 origin/master는 로컬 리포지토리가 현재 동기화된 원격 리포지토리의 이름이고, 변경사항이 푸시될 곳이야.

2단계. 현재 폴더에 브랜치의 코드를 내려 받아.

브랜치 간 전환

3단계. 확인해.

나는 'master' 브랜치와 오래된 코드가 표시돼:

확인

11.4 브랜치 병합

이제 두 브랜치의 코드를 합쳐 보자.

1단계. 우선 프로젝트에 새로운 파일을 하나 더 추가하자 — index.html 그리고 거기에 코드를 작성해:

  • index.html 파일 생성해
  • 코드 <h1>Hello</h1> 작성해
  • 파일 커밋해

master 브랜치에서 내 두 개의 파일은 이렇게 보여:

브랜치 병합

2단계. 브랜치 병합.

test 브랜치에서 변경된 내용을 현재 브랜치(master)에 합쳐보자.

이것도 상단 메뉴와 ‘Merge ‘test’ into ‘master’’ 명령어를 사용해 해보자:

브랜치 병합

3단계. 결과 확인.

브랜치 병합

확인해보자:

  • 상단에 여전히 master 브랜치가 표시돼
  • 파일이 두 개 있어: index.html과 main.html
  • main.html 파일에는 test 브랜치에서 추가된 코드가 포함돼있어

11.5 병합 시 충돌

가끔 브랜치를 병합할 때 충돌이 발생할 수 있어.

만약 다른 브랜치에서 같은 파일에 변경을 하고 이를 병합하려고 하면 충돌이 생길 수 있어.

텍스트 파일 충돌

Git은 아주 똑똑한 시스템이야 — 파일 타입을 이해해. 텍스트 파일로 간주되는 파일의 다른 부분을 변경하면, Git은 한 파일에서 다른 파일로 변경사항을 적절한 위치로 자동으로 옮겨줘 (사람이 하듯이).

바이너리 파일 충돌

하지만 이미지나 문서를 수정하면, Git은 그들의 일부를 하나로 합치려고 하지 않고, 어느 버전을 현재 브랜치에 남길지 선택하도록 할 거야.

수동으로 충돌 해결

텍스트 파일의 동일한 위치에 변화를 주면, Git은 서로 다른 버전을 제대로 병합할 수 없어, 너에게 해결하라고 할 거야:

병합 시 충돌

이것이 어떻게 보일 수 있는지 보여줄게:

병합 시 충돌

여기서 무엇을 볼 수 있는지:

  • 왼쪽 — master 브랜치의 main.html 파일 내용
  • 오른쪽 — test 브랜치의 main.html 파일 내용
  • 가운데에서 IntelliJ IDEA가 최종 버전의 코드를 입력하도록 제안해 (어떤 파일에서 변경 사항을 자동으로 삽입하려면 ‘>>’ 및 ‘<<’ 버튼을 클릭할 수 있어)

나는 master 버전을 선택하고 손으로 코드를 작성했어. 결과는 이렇게 나왔어:

병합 시 충돌

11.6 변경 내역

또 다른 유용하고 흥미로운 사실. Show History 버튼을 클릭하여 모든 파일의 변경 내역을 볼 수 있어. 이걸 찾을 수 있는 두 장소가 있어. 찾아봐.

내가 main.html 파일에 대한 변경 내역을 보여줄게:

변경 내역

설명:

  • 왼쪽에는 특정 파일의 변경 내역이 보여:
    • 변화가 새로울수록 위에, 오래될수록 아래에 있어
    • 브랜치 병합의 내역도 보여
  • 오른쪽 — 특정 커밋에서 적용된 변경사항
1
Опрос
장식 요소,  20 уровень,  3 лекция
недоступен
장식 요소
장식 요소
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION