Git17 [Git] Git의 `origin`과 `upstream` 완전 정리 🌐 Git의 origin과 upstream 완전 정리📌 1. origin이란?내 로컬 Git 저장소가 처음 연결된 원격 저장소에 붙는 기본 이름Git은 기본적으로 로컬 저장소(Local Repository) 만 있지만,우리가 GitHub, GitLab, Bitbucket 등에 저장소를 원격으로 연결할 때,그 원격 저장소에 자동으로 붙는 기본 이름이 바로 origin 입니다.git clone https://github.com/username/project.git이렇게 clone하면 Git은 자동으로 이 원격 저장소에 origin이라는 이름을 붙입니다.# 확인git remote -vorigin https://github.com/username/project.git (fetch)origin https:.. 2025. 5. 21. [Git] Git에서 특정 파일만 무시하거나 되돌리는 전략 정리 ✅ Git에서 특정 파일만 무시하거나 되돌리는 실무 전략 정리🔎 목적Git에 이미 올라간 파일을 로컬 변경 없이 그대로 다시 덮어쓰기특정 파일은 로컬에서 계속 수정하되 Git에선 무시하도록 처리Git이 추적하지 않아도 되는 새로운 파일/디렉토리를 무시하도록 설정✅ 1. 변경된 파일을 Git에 올라간 상태로 덮어쓰기Git이 추적 중인 파일을 마지막 커밋 상태로 복원 (로컬 수정 삭제)▶️ 명령어:git restore 📂 예시:git restore src/components/Header.js💡 설명:git status에 modified로 뜨는 파일을 제거 (수정 내용 삭제)로컬에서 실수로 수정한 파일을 원상복구주의: 되돌린 변경사항은 복구 불가 (백업 먼저!)✅ 2. 로컬에서만 수정하고 Git에선 무시.. 2025. 5. 21. [Git] Git에서 파일 이름 대소문자 변경이 반영되지 않을 때 해결법 ✅ Git에서 Java 클래스 파일 이름 대소문자 변경이 반영되지 않을 때 해결법💡 문제 상황Java 프로젝트에서 클래스 이름을 다음과 같이 수정하고 싶을 때:src/app/user/loginhandler.java → LoginHandler.javaEclipse에서 이름만 바꾸거나 git mv loginhandler.java LoginHandler.java이렇게 해도 Git이 변경을 감지하지 않거나 원격에 반영되지 않는 문제가 발생할 수 있습니다.🚨 원인대부분의 운영체제(Windows, macOS)는 파일 시스템이 대소문자를 구분하지 않기 때문입니다.→ Git이 "이름 안 바뀌었네?"라고 인식할 수 있어요.→ 그래서 git commit, git push 후에도 GitHub 같은 원격 저장소에는 변경.. 2025. 4. 25. [Git] 협업을 위한 Git 커밋 메시지 작성 가이드 🧭 협업을 위한 Git 커밋 메시지 작성 가이드Git 커밋 메시지는 단순한 기록이 아닙니다. 팀원 간의 소통 도구이며, 프로젝트의 변경 이력을 명확하게 전달하는 수단입니다. 명확하고 일관된 커밋 메시지는 협업의 효율을 높이고, 코드의 유지보수를 용이하게 합니다.✍️ 커밋 메시지의 중요성변경 이력 추적: 어떤 변경이 언제, 왜 이루어졌는지 파악할 수 있습니다.협업 효율성 향상: 팀원 간의 이해를 돕고, 코드 리뷰를 원활하게 합니다.자동화 도구 연계: 린트, 배포, CI/CD 등 자동화 도구와의 연계를 용이하게 합니다.🧱 커밋 메시지의 기본 구조(): : 커밋의 종류를 나타냅니다.: 변경된 범위(파일, 기능 등)를 명시합니다.: 변경 사항을 간단히 요약합니다.: 변경의 이유와 내용을 상세히 설명합니다.:.. 2025. 4. 24. [Git] Git 명령어: 작업 상태 확인, 브랜치/커밋 이력, push 여부 확인 ✅ Git 명령어: 작업 상태 확인, 브랜치/커밋 이력, push 여부 확인📌 1. 작업 상태 확인🔹 git statusgit status📤 결과 예시 (변경/스테이징 상태 확인)On branch feature/loginChanges to be committed: (use "git restore --staged ..." to unstage) modified: LoginForm.jsChanges not staged for commit: (use "git add ..." to update what will be committed) modified: App.css✔️ 언제 씀: 파일을 수정했거나, 커밋 전에 확인할 때🔹 git diffgit diff🔍 결과 예시 (스테이징 전 변.. 2025. 4. 24. [Git] `git fetch + rebase`를 이용한 로컬 브랜치 최신화, 그리고 main 브랜치에서 다른 브랜치의 변경사항을 병합(merge) ✅ 1. git fetch + git rebase origin/main 전 과정 정리📦 전제 상황당신은 feature/login 브랜치에서 작업 중다른 팀원이 main 브랜치를 업데이트함 (원격 origin/main이 최신 상태)내가 작업 중인 feature/login 브랜치를 origin/main 위로 정렬하고 싶음🔁 전체 과정 요약# 1. 원격 저장소의 최신 브랜치 상태 가져오기git fetch origin# 2. 내 브랜치를 최신 main 위로 재정렬git rebase origin/main🧠 내부 동작 상세 흐름1️⃣ git fetch origin원격 저장소 상태(브랜치, 커밋, 태그 등)를 로컬에 갱신내 브랜치는 변경되지 않음origin/main이 최신 상태로 업데이트됨# 확인git log .. 2025. 4. 23. 이전 1 2 3 다음