git8 [Git] 머지(Merge) 종류 (merge commit, squash, rebase, fast-forward) 👾 Merge Commit(3-way merge)두 브랜치의 변경 사항(history)을 모두 유지하며 메인 브랜치에 다른 브랜치를 병합(merge)합니다.이 경우 각 브랜치의 변경 사항들이 과거의 커밋으로 보존되며,병합 시 메인 브랜치에 새로운 'merge commit'이 추가되며 병합이 완료됩니다.Merge Commitfeature 브랜치의 가장 최근 커밋이 메인 브랜치로 병합되는 것을 볼 수 있습니다. 아래의 그림과 같이 3개의 커밋을 고려하여 병합이 이루어지기 때문에 3-way라는 이름이 붙여졌습니다.3-way merge1번은 두 브랜치의 공통 조상이 되는 커밋,2번은 분기된 브랜치가 가리키고 있는 커밋,3번은 다른 브랜치가 가리키고 있는 커밋입니다. 장점프로젝트의 진행 상황을 명확히 추적할 수.. 2024. 9. 21. [Git] 이전 커밋으로 되돌리기(reset, revert) 비교 및 사용법 정리 git reset, git revert : 과거로 돌아가기git reset과 git revert는 특정 시점 commit으로 되돌리고 싶을 때 사용하는 명령어이다.git reset : 커밋 내역들을 삭제하고, 특정 시점의 커밋으로 되돌아감. 시계를 다시 맞추는 것.git revert : 이전 커밋 내역들은 그대로 두고, 되돌리고 싶은 커밋의 코드만 복원시킨다.이 개념을 쉽게 Devpools의 이리온님께서 설명해주셨는데, 다음의 링크를 참고하면 도움이 될 것이다.개발바보들 1화 - git “Back to the Future”1. git reset위의 사진에서 second commit을 실행한 시점으로 돌아가고 싶고, 3~4번째 커밋을 삭제하고 싶다면 다음과 같은 명령어를 실행한다.$ git reset 되돌.. 2024. 9. 21. [Git] Git 영역 & 상태 정리 📌 Git은 내부적으로 크게 3가지 종류의 작업 영역을 가지고 있다.working directorystaging arearepository 1. working directory (working tree)첫 번째 작업영역인 working directory는 작업을 하는 프로젝트 디렉토리를 말한다..git 디렉토리를 제외한 모든 영역이다.2. staging area (index)두 번째 작업영역인 staging area는 git add를 한 파일들이 존재하는 영역이다.이 곳에 있는 파일들만 커밋에 반영된다.3. repositoryworking directory의 변경 이력들이 저장되어 있는 영역이다.즉, 커밋들이 저장되는 영역이다..git 디렉토리가 repository이다.작업 영역의 관계working d.. 2024. 9. 21. [Git] fetch 와 Pull 의 차이점 Pull vs Mergepull 과 merge 의 차이점은 병합(Merge) 처리 여부입니다.PULL : pull 은 원격 레포지토리로부터 최신 커밋들을 내려받아서, 현재 로컬 브랜치와 자동으로 병합을 진행합니다.Fetch : 반면 fetch 는 원격 레포지토리에서 최신 commit 코드를 이름없는 임시 브랜치로 내려받고, 병합(merge)을 진행하지 않습니다.즉, 개발자가 수동으로 직접 merge 를 진행해야 합니다.이떄 브렌치는 FETCH_HEAD 의 이름으로 체크아웃이 가능합니다.=> 정리해보면, 사실상 pull 명령은 내부적으로 봤을때 fetch 와 merge 의 과정을 포함하고 있는 것입니다. fetch 이후 merge 를 수행하면 pull 명령과 동일한 수행 내역이 되는 것입니다. fetch .. 2024. 9. 21. [Git] Git을 이용한 협업: Fork 부터 Pull Request 까지 들어가기 전에Git은 쉽고 효율적인 버전 관리를 통해 커뮤니티(Github)에 공유된 Open Source 프로젝트 또는 개인 및 단체의 Private Source에 접근, 생성, 수정 할 수 있도록 하는 도구이다. 이 포스트에서는 Github에 업로드 되어있는 source에 접근해 작업하고 Pull Request 하기까지 타인과 협업하면서 프로젝트를 개발하는 일반적인 협업 전략과 그 방법에 대해 알아본다.이 포스트는 Git 명령어 add, commit, push, merge, fetch를 어느정도 이해하고 있다고 가정합니다. One of the Git Flow 아래 다이어그램은 Git을 활용한 여러가지 협업 전략 중 하나이다. 이와같은 Git을 활용한 협업의 순서도를 Git Flow 라고 한다. Git.. 2024. 9. 21. [Git] Git 브랜치 전략 (feat. Git Flow) 브랜치브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다. 개발자들이 협업을 진행할 때 동일한 소스코드를 함께 공유하고 다룬다. 여기서 어떤 사람은 버그를 수정하고, 어떤 사람을 기능을 개발하기도 한다. 동일한 코드를 여러 사람이 다른 작업을 할 때 서로 다른 버전의 코드가 만들어진다. 이 때 동시에 여러 작업을 할 수 있도록 Branch(브랜치)를 사용한다. 분리된 작업 영역에서 수정을 하고 나중에 원래 버전과 비교해서 하나의 새로운 버전을 만든다. 이러한 브랜치 전략들을 정리했다.Git 브랜치 전략그런데, 이런 좋은 브랜치도 규칙 없이 마구잡이로 사용하면 혼란을 불러올 수 있다. .. 2024. 9. 21. 이전 1 2 다음