Branching
프로젝트에 코드를 추가하고 싶지만 제대로 작동하는지 확실하지 않거나, 다른 사람과 프로젝트를 공동으로 작업하고 있으며, 작업이 뒤섞이는 것을 원하지 않는 경우, 다른 branch에서 작업하는 것이 좋습니다.
Git 리포지터리에 브랜치를 만들면, 브랜칭 할 때 해당 파일의 복사본을 만듭니다. 메인 브랜치나 다른 브랜치에 영향을 주지 않고 브랜치의 코드로 원하는 것을 자유롭게 할 수 있습니다. 변경사항을 메인 코드베이스로 가져올 준비가 되면, 프로젝트에서 사용되는 기본 브랜치(master와 같은)에 브랜치를 병합할 수 있습니다.
새 브랜치는 default branch와 구별하기 위해 종종 feature branch라고 합니다.
브랜치 생성
새로운 기능 브랜치를 생성하고 master 브랜치에 영향을 주지 않고 작업하려면 :
git checkout -b <name-of-branch>
Git은 브랜치 이름에 빈 공간과 특수 문자를 허용하지 않으므로, 소문자, 숫자, 하이픈(-
) 및 밑줄(_
)만 사용합니다. 중복이 발생할 수 있으므로 대문자를 사용하지 마십시오.
master 브랜치로 전환
Git으로 작업할 때 항상 브랜치에 있습니다. 메인 브랜치는 master 브랜치이지만, 동일한 명령을 사용하여 master를 브랜치 이름으로 변경하여 다른 브랜치로 전환할 수 있습니다.
git checkout master
기존 브랜치에서 작업
작업할 수 있도록 기존 브랜치로 전환하려면 :
git checkout <name-of-branch>
변경사항 보기
무슨 일이 일어나고 있는지와 변경 상태를 아는 것이 중요합니다. 파일/폴더를 추가, 변경 또는 삭제할 때, Git은 이에 대해 알고 있습니다. 변경 상태를 확인하려면 :
git status
차이점 보기
로컬 unstaged 변경사항과 clone 하거나 pull 한 리포지터리 버전 간의 차이점을 보려면, 다음을 입력하십시오.
git diff
로컬 변경사항 추가 및 커밋
git status
를 입력하면 로컬 변경사항이 빨간색으로 표시됩니다. 이러한 변경사항은 새로운, 수정된 또는 삭제된 파일/폴더일 수 있습니다. 커밋을 위해 로컬 파일/폴더를 첫 번째 단계 (준비)하려면 git add
을 사용합니다. 그런 다음, git commit
을 사용하여 staged 파일을 커밋(저장) 합니다.
git add <file-name OR folder-name>
git commit -m "COMMENT TO DESCRIBE THE INTENTION OF THE COMMIT"
커밋할 모든 변경사항 추가
모든 로컬 변경사항을 빠르게 추가하고 커밋(저장) 하려면 :
git add .
git commit -m "COMMENT TO DESCRIBE THE INTENTION OF THE COMMIT"
참고 : . 문자는 현재 디렉토리와 모든 하위 디렉토리에 있는 모든 파일 변경사항을 의미합니다.
GitLab에 변경사항 보내기
모든 로컬 커밋(저장된 변경사항)을 원격 저장소로 푸시하려면 :
git push <remote> <name-of-branch>
예를 들어, 로컬 커밋을 origin remote의 master 브랜치에 푸시하려면 다음을 수행합니다.
git push origin master
경우에 따라, Git에서 리포지터리로 푸시하는 것을 허용하지 않으므로, 강제로 업데이트해야 합니다.
참고 : 포크에서 업스트림 리포지터리로의 병합 요청을 생성하려면 forking workflow를 참조하세요.