본문 바로가기

Git3

[Git] 깃허브 미러링: 커밋 내역을 살려 레포지토리를 분리하는 기술 하나의 GitHub 레포지토리가 점차 커지면서, 기능 단위 또는 모듈 단위로 분리할 필요가 생기는 경우가 많다. 이때 단순히 디렉터리를 복사해 새로운 레포에 업로드하는 방식은 기존 커밋 이력(히스토리)을 보존하지 못한다는 단점이 있다. 이 글에서는 Git의 mirroring 기술을 활용해, 커밋 내역까지 유지하면서 특정 디렉터리를 별도 레포지토리로 분리하는 방법을 소개하려 한다! 사용 기술: git filter-repo (또는 git filter-branch)git filter-repo란?git filter-repo는 Git 공식이 권장하는 히스토리 리라이팅 툴로, 특정 디렉터리만 추출하거나 파일을 제거할 때 기존 커밋 이력을 유지한 채 작업할 수 있게 해준다. (전체 흐름 요약)원본 레포 복제 (.. 2025. 6. 24.
[Git] .git 디렉터리와 .gitignore 파일에 대해 Git을 사용한 적이 있다면 .git 폴더와 .gitignore 파일을 본 적이 있을 것이다. 하지만 개발자들 중, 이 두 요소가 정확히 어떤 역할을 하는지 모르는 경우도 많다. 이번 글에서는 .git 디렉터리와 .gitignore 파일의 역할과 중요성에 대해 살펴보고자 한다! ※ .git 디렉터리는 숨김 처리가 되어 있기 때문에, ls -al 명령어로 확인할 수가 있다.git 디렉터리: Git 저장소(repository)의 핵심이며, 해당 폴더가 존재하는 디렉터리는 Git 저장소로 간주된다이 폴더는 Git이 버전 관리를 수행하는 데 필요한 모든 정보를 저장하는 곳이다 - Git 저장소의 핵심 데이터 보관커밋 정보: 저장소의 모든 커밋과 변경 사항을 기록브랜치 정보: 현재 사용 중인 브랜치 및 브랜치 .. 2025. 2. 4.
[Git] Git 기초 [git init] 로컬에서 새로운 Git 저장소를 생성 깃허브에서 레포지토리를 생성(※ README.md 파일을 생성하면 안된다!) (1) 해당 디렉터리로 이동cd ~/workspace (2) git 초기화 (git이 설정되지 않았다면 실행)git init(3) 원격 레포지토리 추가git remote add origin 레포지토리 주소 ※ 확인 명령어git remote -v + 로컬 master 브랜치를 main 브랜치로 이름 변경git branch -m master main or git push -u origin main따라서 처음에만 이 커맨드로 하면 되고, 다음부터는 그냥 편하게 git push를 하면 된다 [git clone] 기존 원격 저장소를 로컬에 복제(1) 원하는 디렉터리로 이동cd.. 2025. 2. 3.