728x90
Git에서 사용하는 용어 정리 및 IntelliJ에서 사용법
이번에 친구와 프로젝트를 협업하면서 Github 레파지토리를 공유해야 하는데요. svn만 써왔다 보니까 용어도 어려운 것이 많고 개념도 잘 몰라서 한 번에 정리를 해보려고 합니다.
용어 정리를 쭈욱 해보고, SVN과 비교하고, IntelliJ에서 사용하는 방법도 정리해 보겠습니다.
클론(Clone)
- 클론(clone): 원격 저장소에 있는 프로젝트의 전체 복사본을 로컬 컴퓨터로 복제하는 것.
- 이를 통해 프로젝트의 최신 상태를 로컬에서 사용할 수 있으며, 이후 로컬에서 작업한 변경사항을 원격 저장소에 푸시(push) 하거나 원격 저장소의 변경사항을 가져오기(pull) 할 수 있습니다.
포크(Fork)
- 프로젝트 복사 및 수정: 원본 저장소를 직접 수정할 권한이 없는 경우, 저장소를 포크 하여 자신의 계정으로 복사한 후 수정할 수 있습니다.
- 기여: 오픈 소스 프로젝트에 기여하고 싶을 때, 먼저 프로젝트를 포크 한 후, 변경 사항을 자신의 포크 된 저장소에 커밋 합니다. 그런 다음 원본 저장소로 변경 사항을 병합하기 위해 풀 리퀘스트(Pull Request)를 생성할 수 있습니다
포크 사용
- 오픈 소스 프로젝트에 기여하는 경우
- 원본 저장소에 대한 쓰기 권한이 없는 경우
- 중앙 저장소의 안정성을 유지하고 싶은 경우
클론 사용
- 소규모 팀 내부 협업
- 팀원 모두가 원본 저장소에 대한 쓰기 권한이 있는 경우
- 직접적인 협업과 빠른 동기화가 필요한 경우
저는 포크와 클론이 비슷한 개념인 줄 알고 아무거나 해도 되는 줄 알았는데 다르네요.
친구와 협업하여 함께 개발할 때는 클론을 사용하는 것이 더 적절해 보입니다.
브랜치(Branch)
- 브랜치는 Git 저장소 내에서 서로 다른 작업 흐름을 분리하는 방법입니다. 각 브랜치는 저장소의 특정 시점에서 독립적으로 작업을 진행할 수 있도록 해줍니다. 브랜치를 사용하면 새로운 기능을 개발하거나 버그를 수정할 때, 다른 작업에 영향을 주지 않고 안전하게 작업할 수 있습니다.
기본 브랜치:
- main (또는 master): 보통 기본 브랜치로, 항상 배포 가능한 상태의 코드를 유지합니다.
기능 브랜치:
- feature 브랜치: 새로운 기능을 개발하기 위해 생성하는 브랜치
버그 수정 브랜치:
- bugfix 브랜치: 버그를 수정하기 위해 생성하는 브랜치
릴리스 브랜치:
- release 브랜치: 다음 릴리스를 준비하기 위해 생성하는 브랜치
핫픽스 브랜치:
- hotfix 브랜치: 배포된 버전에 긴급한 수정을 적용하기 위해 생성하는 브랜치
브랜치 개념 정리
- 위의 브랜치 종류가 많지만 프로젝트마다 개발자들 성향에 따라 다를 거 같습니다.
- 간단하게 생각해서 브랜치는 기존 레파지토리를 복사하여 새로운 레파지토리를 생성하는 작업이고, 예를 들어 운영서버, 테스트서버, 개발서버 분리하여 개발하기 위해서 하는 작업인 듯
- 친구와 두 명이서 협업하는 소규모 프로젝트에서는 'masetr'브랜치, '진수'브랜치, '친구'브랜치 3개만 있어도 무방한 것으로 판단됩니다.
풀리퀘스트(Pull Request)
- 풀 리퀘스트는 GitHub에서 팀원이 작업한 내용을 검토하고 병합하기 위해 사용하는 중요한 기능입니다. 풀 리퀘스트를 통해 코드 변경 사항을 팀원들과 공유하고, 코드 리뷰를 받고, 최종적으로 원본 브랜치에 병합할 수 있습니다.
풀리퀘스트 개념 정리
- 여러 개발자가 같은 파일을 수정하여 commit 하면 충돌이 발생할 수 있는데 이걸 방지하기 위해 Merge 하는 개념인 듯. + 코드 리뷰
Git vs SVN
- Git을 처음 해보니 용어가 생소했지만 SVN과 크게 다를 게 없네요.
개념
|
Git 용어
|
SVN 용어
|
저장소 복제
|
Clone
|
Checkout
|
변경 사항 전송
|
Push
|
Commit
|
변경 사항 가져오기
|
Pull
|
Update
|
작업 복사본
|
Branch
|
Branch
|
변경 사항 병합 요청
|
Pull Request (PR)
|
Merge? Meger랑 비슷한 역할이긴 하지만, 약간의 차이가 있는 듯
|
1. Intellij 툴에서 프로젝트 클론하기
1-1. IntelliJ 툴 사용 (첫 번째 방법)
- IntelliJ 상단 메뉴에서 'Get from Version Control'을 클릭
- 깃허브 프로젝트 레파지토리 URL을 복사

- 복사한 URL을 붙여놓고 Clone을 클릭하면 끝!
1-2. IntelliJ 터미널에서 명령어 입력 (두 번째 방법)
- git clone 'URL 주소'
- ex) git clone https://github.com/ljs14741/bitcoin.git
2. Intellij 툴에서 프로젝트 브랜치 생성하기
2-1 IntelliJ 툴 사용 (첫 번째 방법)
- IntelliJ 상단 메뉴에서 Git - Branches 클릭
-
- New Branch 클릭
- 브랜치명 정하고 Create 클릭
- 상단에 jinsu를 클릭해 보면 기존에 존재한 master와 방금 생성한 jinsu 브랜치 2개가 있다. 현재는 상단에 표시된 'jinsu' 브랜치가 활성화되어 있음
- 다른 브랜치를 활성화하려면 브랜치 선택 후 Checkout 클릭하면 됨. 그럼 상단에 그 브랜치가 표시됨
2-1 IntelliJ 터미널 사용 (두 번째 방법)
- git checkout -b '브랜치명'
- ex) git checkout -b second_jinsu

- second_jinsu 브랜치가 활성화되어 있다. 매우 간단하네.

3. Intellij 툴에서 프로젝트 커밋 & 푸시하기
3-1 IntelliJ 툴 사용 (첫 번째 방법)
- 좌측에 commit 메뉴에서 커밋 할 파일 체크하고 메시지 넣고 commit and push


3-2 IntelliJ 터미널 사용 (두 번째 방법)
- git add .
- git commit -m "Add new feature"
- git push origin jinsu



4. Github에서 풀리퀘스트하기
- 깃허브 접속해서 아래처럼 생성하면 되는 듯

- 브랜치 선택

- 커밋 내용 확인하고 Create pull request 클릭

- 풀리퀘스트에 대한 제목과 설명 적고 Create pull request 클릭

- 팀장? 이 커밋 내용 확인하고 문제없으면 Merge pull Request 하면 끝
- 그럼 master 브랜치에 반영

- 저는 현재 권한이 다 있어서 그런지? 풀리퀘스트를 요청하지 않아도 푸시 하면 리퀘스트가 자동으로 생김
- 깃허브 접속해 보면 커밋 & 푸시 작업으로 인해 Compare & pull Request가 생김

5. 끝 ..
- git 용어와 IntelliJ에서 사용하는 방법을 알아보았습니다.
- 협업할 때 요 정도만 알아도 될 듯?
- A 개발자가 풀리퀘스트로 merge가 완료되면 B 개발자가 pull 받으면 될 듯.
- git 알고 보니 svn과 크게 다를 게 없다.. 그런데 진입장벽이 svn보다 조금 높다고 생각한다..
728x90
'IT > Git' 카테고리의 다른 글
깃허브 Description 수정하는 방법 (1) | 2024.05.29 |
---|---|
readme.md 파일 작성법 (0) | 2024.04.23 |
Git[Github] Repository Public/Private 전환 (1) | 2024.04.18 |
Intellij git 커밋 원복하는 방법 (0) | 2024.04.01 |
기존 Git Repository를 복사하여 새로운 Repository 만들기 (1) | 2024.04.01 |