[GitHub] Github와 NVM 설치
1. Branch 관리와 협업
협업 시, 모든 팀원이 master 브랜치를 사용하면 작업 내용을 추적하기 어렵고, 충돌을 일으킬 수 있습니다. 이를 방지하기 위해 각 팀원은 역할에 맞는 branch를 생성하고 작업합니다. 각 브랜치는 특정 기능이나 작업을 진행하는 단위로 활용됩니다.
브랜치 생성 및 확인
- git checkout -b <브랜치명> 명령어로 새로운 브랜치를 생성하고 동시에 체크아웃합니다.
- git branch 명령어로 현재 브랜치와 다른 브랜치들을 확인할 수 있습니다.
Tip
- Alt + Shift + 아래: 현재 줄을 아래로 복사
- Ctrl + Enter: 커서가 있는 줄에서 바로 다음 줄로 내려감
GitLens 확장 프로그램
VSCode에서 GitLens 확장 프로그램을 사용하면, Git의 commit 상황을 시각적으로 잘 보여주며, Undo commit 기능을 통해 이전 상태로 되돌릴 수 있어 협업에 유용합니다. 기본 무료 버전으로도 충분히 활용 가능합니다.
README.md 작성 습관
레포지토리의 README.md 파일은 다른 팀원이나 외부 사람이 프로젝트에 대해 쉽게 이해할 수 있도록 작성하는 것이 좋습니다.
2. 브랜치 병합
- 브랜치를 병합하려면 Pull Request (PR) 를 생성하고, 병합하려는 브랜치와 병합 대상 브랜치(보통 master) 사이에서 비교 후 요청을 작성합니다.
- PR에서 Files Changed 탭에서 변경된 코드를 한 줄씩 리뷰할 수 있으며, 필요에 따라 승인 규칙을 설정할 수 있습니다. 예를 들어, 팀장만 병합 권한을 갖거나, 여러 명의 승인이 필요하도록 할 수 있습니다.
- 원격에 없는 branch를 로컬에서 push 하려고 하면 오류가 난다.
git push --set-upstream origin Board
- README.md는 보통 document branch를 따서 수정한다.
병합 과정
- PR 작성 후, 리뷰를 받은 뒤 병합할 수 있습니다.
- 병합 전에 convention (규칙)을 설정하여 코드 스타일을 통일시키는 것이 중요합니다.
3. 충돌(Conflicts) 해결
- 다른 브랜치에서 동일한 파일을 수정하고 병합하려 할 때 충돌이 발생할 수 있습니다.
- Git에서는 충돌을 해결하기 위해 코드 내에서 충돌 부분을 <<<, ===, >>> 형태로 표시합니다. 개발자는 이 부분을 확인하고 수동으로 수정한 후 병합을 완료합니다.

- 같은 파일에 대하여 서로 다른 branch가 관여를 하고 병합을 요청했을 때 일어난다.
- master가 두 관계자를 부른 뒤 합의를 보고 문제가 되는 파일에 대하여 수정한다.
- 파일을 수정하고 최종 병합을 하면 합의를 본 내용이 master branch로 병합된다.
충돌 예시
bash
<<< 1 name
...
...codes...
...
=========
...
...diffcodes...
...
>>> 2 name

- 충돌을 해결한 후, Mark as resolved를 클릭하여 충돌을 해결하고 병합을 진행합니다.

- 이후 다시 PR에서 merge 부분이 활성화되면 병합하여 팀원들에게 재배포할 수 있다.

4. 주요 Git 명령어
📌현재까지 Git과 Github 주요 명령어 및 핵심을 정리하면
- 주요 명령어
- `git init` 을 통해 초기화(처음 필수)
- `git status` 깃 상태 확인
- `git add filename.txt` or `git add .` 변경사항 스테이징
- `git commit -m “내용”` 스테이징된 내용 커밋
- `git clone <저장소 url>` 원격 저장소 클론
- `git remote add <원격 저장소> <저장소 url>` 원격 저장소 연결
- `git push` 연결된 원격 저장소로 푸시
- `git pull` 연결된 원격 저장소의 내용을 로컬로 업데이트
- `git branch` 브랜치 확인
- `git branch <새로운 브랜치>` 브랜치 생성
- `git checkout <브랜치>` 브랜치 체크아웃(로그인)
- `git checkout -b <새로운 브랜치>` 브랜치 생성하며 체크아웃하기 동시에
- `git log` 커밋 이력 보기
- `git log -oneline` 커밋 제목만 보기
5. 팀장 권한 설정
팀에서 병합을 관리할 때, Ruleset을 설정하여 팀장만 병합할 수 있도록 하거나, 몇 명 이상 승인이 필요한 규칙을 설정할 수 있습니다. 병합 권한을 잘 관리하는 것이 중요합니다.
6. 커밋 메시지 규칙
커밋 메시지는 코드 변경 내용을 명확하게 전달하는 중요한 요소입니다. 일관된 메시지 규칙을 설정하여 팀원 간의 소통을 원활하게 할 수 있습니다.
일반적인 커밋 메시지 규칙 예시
사진 설명을 입력하세요.
추가적으로 많이 쓰는 메시지 규칙
- feat: 새로운 기능 구현
- fix: 버그 수정
- refactor: 코드 리팩토링
- chore: 기타 작업 (예: 라이브러리 추가)
- docs: 문서 수정
7. NVM(Node Version Manager) 설치
Node.js의 버전을 관리하기 위해 NVM을 사용하면, 다양한 버전의 Node.js를 쉽게 설치하고 사용할 수 있습니다.
NVM 설치 방법
- NVM 설치 페이지에서 nvm-setup.exe를 다운로드합니다.
- nvm install --lts 명령어로 LTS 버전을 설치합니다.
- nvm use lts 명령어로 LTS 버전 사용을 설정합니다.
- node 명령어로 Node.js를 사용할 수 있습니다.
cmd로 들어가서
nvm install --lts
명령어로 설치를 한다.
다음에
nvm use lts
명령어를 실행하면 권한 설정이 나온다.
그러고 나면 node js를 사용할 수 있게 된다.
node 관련 라이브러리를 설치하는 곳 → npm
개발 후 유지보수할 시에 처음 개발했을 때 썼던 node 버전으로 맞춰서 수정해야 원활하다.
예시
cmd에서 node를 실행 후
console.log("Hello")
명령어를 실행하게 되면 잘 출력된다.
Ctrl + c 를 누르면 console에서 나오게 된다.
8. 마무리
Git과 GitHub을 사용한 협업에서 중요한 것은 명확한 규칙 설정과 원활한 커뮤니케이션입니다. 충돌을 해결하고 병합하는 과정에서 항상 팀원들과 협력하고, 일관된 규칙을 따르는 것이 중요합니다.