[Git] Git 실무에서 자주 쓰는 상황과 명령어 조합
·
DevOps/Git
Git에서는 다양한 명령어의 기능을 제공하지만, 실제 업무에서 주로 사용하는 흐름이 어느정도 정해져 있습니다.이번 글에서는 업무 중 자주 마주치는 상황을 중심으로, 어떤 명령어를 어떤 순서로 사용하면 좋을지 정리해보았습니다.1. 새로운 기능 개발 브랜치 생성 및 작업 시작새로운 기능을 개발할 때는, main 브랜치에서 분기하여 별도의 브랜치에서 작업하는 것이 일반적입니다.git switch maingit pull origin maingit switch -c feature/login작업 후에는 변경사항을 커밋하고 원격 저장소에 푸시합니다.git add .git commit -m "feat : 로그인 페이지 UI 구현"git push origin feature/login이후에는 Pull Request(PR)..
[Git] 작업 복구와 임시저장 : reflog, stash
·
DevOps/Git
Git을 사용하다 보면 다음과 같은 상황이 자주 발생합니다."reset --hard 쳤는데 작업이 날아갔어!""잠깐 다른 브랜치로 가야 하는데, 지금 하던 건 아직 미완성이야""며칠 전에 삭제한 브랜치를 복구하고 싶어"이런 경우, Git의 강력한 복구 기능인 reflog와 작업을 임시 저장하는 stash를 알고 있으면 훨씬 유연하게 작업을 이어갈 수 있습니다.reflog – 히스토리 복구의 마지막 보루git reflog는 Git이 내부적으로 관리하는 브랜치의 이동 기록을 보여주는 명령어입니다.이력을 되돌리거나 실수로 삭제한 브랜치나 커밋을 복구할 때 매우 유용합니다.예를 들어 reset --hard를 실행해도, reflog를 통해 이전 상태로 돌아갈 수 있습니다.#히스토리 목록 보기git reflog #..
[Git] 커밋 되돌리기 : reset, revert
·
DevOps/Git
Git으로 작업하다 보면 커밋 메시지를 잘못 작성하거나, 수정하지 말았어야 할 파일을 커밋했거나, 아예 커밋 자체를 되돌리고 싶은 상황이 종종 생깁니다.이 글에서는 커밋 이력 수정 및 되돌리기와 관련된 주요 명령어인 reset, revert, amend의 동작 원리와 사용 방법을 설명합니다.revert – 커밋 내용을 되돌리는 새 커밋 생성git revert는 특정 커밋의 변경 내용을 되돌리는 "취소 커밋"을 새로 생성합니다.기존의 커밋 히스토리는 유지되며, 공유된 브랜치에서도 안전하게 사용할 수 있습니다.git revert 옵션설명--no-commitrevert 결과를 자동으로 커밋하지 않고, staging 상태로 둡니다.--edit커밋 메시지를 수정할 수 있도록 editor를 엽니다. 사용 예제#..
[Git] Git 브랜치 전략 : 팀 환경에 맞는 전략 선택과 운영 방법
·
DevOps/Git
Git에서 브랜치는 단순한 코드 분기 기능을 넘어서, 개발, 테스트, 배포 흐름 전체를 팀에 맞게 정리할 수 있는 중요한 도구입니다.이 글에서는 실무에서 자주 쓰이는 대표적인 Git 브랜치 전략 4가지를 각각의 구조, 병합 흐름, 배포 방식은 물론, 어떤 팀에서 어떻게 운영하는지, 팀 내부 규칙은 어떻게 정하는지까지 자세히 정리해보았습니다.1. Git Flow정형화된 브랜치 구조를 통해 안정적인 릴리스 주기를 관리하는 전략Git Flow는 Vincent Driessen이 제안한 브랜치 전략으로 기능 개발, 릴리스 준비, 운영 반영, 버그 수정 등을 각기 다른 브랜치로 분리하여 장기 프로젝트나 안정성 중심의 개발에 적합합니다. 브랜치 구성브랜치설명main운영 환경(프로덕션)에 배포되는 최종 코드develo..
[Git] 브랜치 통합 : merge, rebase, cherry-pick
·
DevOps/Git
프로젝트가 복잡해지고 여러 기능이 동시에 개발되다 보면, 서로 다른 브랜치에서 작업한 내용을 하나로 통합해야 할 필요가 생깁니다.Git은 이러한 브랜치 통합을 위한 다양한 도구와 전략을 제공합니다.이 글에서는 대표적인 브랜치 간 병합 방법과, 세 가지 통합 방법인 merge, rebase, cherry-pick의 원리와 사용법을 살펴보겠습니다.브랜치 간 병합 방법Git에서 merge는 다양한 방식으로 병합을 지원합니다.아래에서는 대표적인 네 가지 병합 방식인 Fast-forward, Recursive, Squash, Rebase & Merge에 대해 설명합니다.브랜치 간 병합 방법에 대한 내용은 해당 글을 참고하여 작성했습니다. Merge (Fast Forward)Fast-forward 방식은 가장 기본..
[Git] 브랜치 전략 이해 : branch, checkout, switch, restore, fetch
·
DevOps/Git
프로젝트를 진행하면서 기능을 독립적으로 개발하거나 버그 수정을 따로 진행할 필요가 있을 때, Git의 브랜치 기능을 활용하면 효율적으로 작업할 수 있습니다.이 글에서는 브랜치를 생성하고 전환하는 기본 명령어인 branch와 checkout, 그리고 최신 원격 브랜치 정보를 가져오기 위해 사용하는 fetch에 대해 자세히 살펴보겠습니다.branch - 브랜치 생성 및 관리git branch 명령어는 새로운 브랜치를 생성하거나, 기존 브랜치 목록을 확인하고 삭제하는 등 브랜치 관련 작업을 수행할 수 있습니다.이를 통해 독립적인 작업 영역을 만들어 다양한 기능을 동시에 개발할 수 있습니다.#로컬 브랜치 목록 확인git branch#새로운 브랜치 생성git branch 옵션설명-m브랜치 이름 변경-v브랜치 목록..
[Git] 원격 저장소와 동기화 : fetch, pull, push
·
DevOps/Git
Git은 로컬(Local)에서 개발하고, 원격(Remote) 저장소와 주기적으로 동기화하는 구조입니다.이때 핵심적으로 사용되는 명령어들이 바로 push, pull, fetch입니다.이 글에서는 각 명령어의 역할, 차이점, 사용 예제를 구체적으로 알아보겠습니다.fetch – 원격 변경 이력만 가져오기원격 저장소의 변경 이력을 로컬로 가져오되, 실제 파일 변경이나 병합은 하지 않습니다.원격의 최신 상태를 확인한 후 수동으로 병합하는 경우에 유용합니다.git fetch origin옵션설명--all연결된 모든 원격 저장소에서 변경사항을 가져옴--prune원격 저장소에서 삭제된 브랜치 정보를 정리 fetch는 어떻게 동작할까?git fetch는 원격 저장소의 커밋을 로컬로 받아올 때, 이를 이름 없는 임시 브랜..
[Git] 변경 이력 관리 : commit, log, diff, show
·
DevOps/Git
Git의 가장 핵심적인 기능은 변경 이력을 체계적으로 기록하고 추적할 수 있다는 점입니다.이번 글에서는 커밋을 기록하고, 히스토리를 조회, 커밋 간 변경 내용을 비교하는 데 사용되는 핵심 명령어인 commit, log, show, diff의 개념과 사용법을 자세히 살펴보겠습니다.commit - 변경 이력을 저장소에 기록하기git commit은 스테이징 영역에 있는 변경사항을 로컬 저장소에 스냅샷으로 저장하는 명령어입니다.git commit -m "message" -m 옵션은 커밋 메시지를 인라인으로 작성하는 방식입니다.Git에서는 모든 커밋에 의미 있는 메시지를 남기는 것을 권장합니다.메시지 작성 팁의미있는 단어로 시작 (feat:, fix:, docs:, refactor: 등)작업 목적이 명확하도록 작..
[Git] Git 파일 관리 : add, status, rm
·
DevOps/Git
Git은 변경된 파일을 자동으로 커밋하지 않습니다.커밋하려면 반드시 추적(tracking) 과정을 거쳐야 하며, 이 과정에서 자주 사용하는 명령어가 바로 add, status, rm입니다.이번 글에서는 Git에서 파일을 추가하고, 변경 상태를 확인하고, 필요한 파일을 제거하는 일련의 흐름을 명확하게 정리해보겠습니다.파일 변경 흐름 이해하기Git은 파일을 다음과 같은 세 가지 단계로 구분해서 관리합니다.Working directory (작업 디렉터리).git 디렉터리를 제외한 모든영역으로 사용자가 작업하는 디렉터리입니다.*Staging area (스테이징 영역)*git add를 한 파일들은 staging 상태로 올라가게 되는데, 이 곳에 있는 파일들만 커밋에 반영됩니다.*Repository (저장소)*wo..
[Git] Git 저장소 생성 및 연결 : init, clone, remote
·
DevOps/Git
Git을 설치하고 사용자 설정까지 마쳤다면, 이제 본격적으로 저장소(repository) 를 생성하고 원격 저장소와 연결해 사용할 준비가 되었습니다.이번 글에서는 Git 저장소를 처음 만들거나 복제(clone)하고, 원격 저장소(remote)를 추가해 협업을 위한 기반을 만드는 과정까지 순차적으로 정리해보겠습니다.init - 로컬 저장소 생성하기새로운 프로젝트를 시작할 때는 먼저 로컬에 Git 저장소를 초기화해야 합니다.이 작업은 기존 폴더를 Git으로 추적 가능한 프로젝트로 만드는 과정입니다.mkdir my-projectcd my-projectgit init위 명령어를 실행하면, .git이라는 숨겨진 폴더가 생성되며, 해당 폴더 안에서 Git이 변경 이력을 관리하기 시작합니다.이 상태는 아직 아무 파일..
okbear3
bear's blog