Dev/VCS 17

Git fast-forward merge, 3-way merge

Git 병합Git 에서 여러 브랜치에서 작업한 내용을 하나의 브랜치로 합치는 작업을 병합 (merge) 이라고 하며, 대표적으로 fast-forward merge 방식과 3-way merge 방식이 있습니다. 병합이 성공할 경우 3-way merge 에서는 병합 커밋이 자동으로 생성됩니다.비병합 커밋 (Non-merge commit): 단일 브랜치에서 발생하는 커밋으로 하나의 부모 커밋만 가지며, 다른 브랜치와의 병합 없이 그 브랜치에서만 변화가 일어난 커밋입니다.병합 커밋 (Merge Commit): 두 개 이상의 브랜치를 병합할 때 Git 이 자동으로 생성하는 커밋으로 두 개 이상의 부모 커밋을 가집니다. 하나의 병합을 진행하며 병합 충돌이 여러 번 발생하여도 병합 커밋은 최종적으로 병합이 성공하는 ..

Dev/VCS 2024.12.24

Git 협업 방법 clone, fork

git clone저장소 (Repository) 구성원인 경우 원본 저장소를 clone 해서 바로 작업을 진행할 수 있습니다.git clone https://github.com/dragonHyeon/some-repository.git # 원격 저장소 clonecd some-repository # clone 한 저장소의 디렉터리로 이동 git clone 시 원격 저장소의 모든 브랜치, 커밋, 심볼릭 레퍼런스 (origin/HEAD), 태그를 가져옵니다. 기존 작업 디렉터리에서 일부 브랜치 추가를 하는 경우가 아니라면 수동으로 fetch 를 하여 특정 브랜치의 업데이트 정보만을 가져오기 보다는 git clone 을 사용하는것이 더 ..

Dev/VCS 2024.12.17

Git 원격 브랜치, 원격 추적 브랜치, 트래킹 브랜치

원격 브랜치 (Remote Branch)원격 저장소에 존재하는 브랜치로 원격 저장소에서 관리되고 있는 브랜치입니다.원격 추적 브랜치 (Remote Tracking Branch)로컬에서 원격 브랜치를 추적하는 참조이자 브랜치입니다. 예를 들어, origin/develop 은 원격 저장소 origin 의 develop 브랜치를 참조하는 원격 추적 브랜치입니다. 즉, 원격 저장소 origin 의 develop 브랜치를 참조하는 브랜치입니다.git branch -r 을 통해 원격 추적 브랜치 목록을 확인할 수 있습니다.트래킹 브랜치 (Tracking Branch)로컬 브랜치가 원격 추적 브랜치를 통해 간접적으로 원격 브랜치를 추적하는 상태인 경우 해당 로컬 브랜치를 트래킹 브랜치라고 합니다. 예를 들어, dev..

Dev/VCS 2024.12.17

Git 스테이징 영역

스테이징 영역 (Staging Area)스테이징 영역은 Git 에서 변경 사항을 커밋하기 전에 준비하는 곳입니다. 즉, git add 명령을 사용하여 파일을 스테이징 영역에 추가하고, 그 후 git commit 을 사용하여 커밋을 생성합니다. 스테이징 영역에 추가된 파일은 Git 이 커밋할 준비가 된 파일들로 간주합니다.git add file1.txt # file1.txt 파일을 스테이징 영역에 추가git add file2.txt # file2.txt 파일도 추가git commit # 커밋을 하면, 스테이징된 변경 사항이 커밋됨 스테이징 영역은 변경 사항을 검토하고 선택적으로 커밋할 수 있는 단계로, 수정한 파일 중 일부만 커밋하고 싶을 때는 나머지를 스테이징 영역에 추가하지 않으면 됩..

Dev/VCS 2024.12.13

git pull vs git fetch

git pull vs git fetch원격 저장소의 브랜치를 로컬에 적용하기 위해 git pull 혹은 git fetch 를 사용할 수 있습니다.git pull원격 저장소에서 변경 사항을 가져오고, 자동으로 현재 로컬 브랜치에 병합합니다.내부적으로 git fetch + git merge 를 한 번에 수행합니다.예를들어 develop 브랜치에서 git pull origin main 을 실행할 경우 develop 브랜치에 origin/main 브랜치를 병합하게 됩니다.git pull 을 통해 병합 커밋이 생성 될 경우 자동으로 Merge branch 'main' of into main 와 같은 커밋 메시지가 생성되며 자동으로 실행되는 커밋 메시지 수정창에서 커밋 메시지 수정 또한 원한다면 할 수 있습니다...

Dev/VCS 2024.12.13

Git 브랜치 전략

Git 브랜치 전략브랜치 전략이란 효율적인 협업과 코드 관리를 위해 버전 관리 시스템 (Version Control System, VCS) 에서 브랜치를 생성하고 병합하는 체계를 정의한 방법론입니다. 대표적인 버전 관리 시스템중 하나인 Git 에서 자주 사용되는 브랜치 전략은 다음과 같습니다.Git Flow주요 브랜치main: 항상 배포 가능한 상태로 유지하며, 운영 환경에 배포된 버전을 관리develop: 기능 개발 및 다음 릴리스를 준비하는 기본 브랜치작업 브랜치feature/*: 새로운 기능 추가를 위한 브랜치develop 에서 분기하여 작업하며, 완료 후 다시 develop 으로 병합예: feature/user-authrelease/*: 릴리스를 준비하기 위한 브랜치develop 에서 분기하여 테..

Dev/VCS 2024.12.12

Conventional Commits

Conventional CommitsConventional Commits 는 버전 관리 시스템 (Version Control System, VCS) 의 커밋 메시지를 일관성 있게 작성하기 위한 규약입니다. 이를통해 팀 내에서 일관성 있는 커밋 메시지 작성이 가능해지고 가독성이 향상되며 릴리즈 관리, 버전 관리 등의 프로세스를 자동화할 수 있습니다.Conventional Commits 메시지 구조(): [optional body][optional footer]: 커밋이 수행한 작업의 종류를 나타냅니다. 주요 타입은 다음과 같습니다.feat: 새로운 기능 추가fix: 버그 수정docs: 문서 변경style: 코드 스타일 변경 (코드 포맷팅, 세미콜론 추가 등)refactor: 코드 리팩토링 (기능 변경 없음..

Dev/VCS 2024.12.10