git·github

git·github

GitHub 연동 방식: HTTPS vs SSH

깃허브(GitHub) 원격 저장소에 연결하는 방법은 대표적으로 HTTPS 방식과 SSH 방식이 있다.두 방식은 각각 장단점이 있기 때문에, 환경과 목적에 맞게 선택하는 것이 중요하다. HTTPS 방식원리: 깃허브 계정의 사용자 이름과 비밀번호(또는 Personal Access Token)를 이용해 인증하는 방식이다.특징별도의 설정이 필요 없다. → 계정만 있으면 바로 연결 가능하다.초기 설정이 간단해 초보자가 쓰기 편리하다.다만, 매번 push/pull 시 인증이 필요할 수 있다.명령어 예시git clone https://github.com/username/repo.git SSH 방식원리: 각 PC에서 SSH 키(공개키/개인키 쌍)를 생성하여 깃허브 계정에 등록 후 인증하는 방식이다.특징한 번 ..

git·github

Git Pull vs Fetch: 차이와 활용

Git Fetch동작: 원격 저장소(remote)의 변경 내역을 가져오기만 하고, 내 로컬 브랜치와는 합치지 않는다.특징로컬 작업을 건드리지 않음원격 브랜치 상태만 최신화됨이후에 git log나 git diff로 비교 가능내 코드에는 변화가 없다.원격 저장소(origin/main)의 최신 커밋만 확인 가능하다. Git Pull동작: 원격 저장소(remote)의 변경 내역을 가져오고(fetch), 즉시 내 브랜치와 병합(merge)한다.특징fetch + merge 한 번에 실행된다.실무에서 가장 흔히 쓰이는 명령어이다.단, 충돌(conflict)이 바로 발생할 수 있다.git pull origin main내 코드와 원격 저장소의 코드가 자동으로 합쳐진다. Fetch vs Pull 비교 실무 ..

git·github

Git 브랜치 재배치(Rebase) 정리

재배치(Rebase)란?Rebase = 브랜치의 시작(base)을 다른 커밋으로 옮기는 것예시foo 브랜치를 master의 최신 커밋 위로 옮겨서,마치 foo 작업이 master의 최신 버전 이후에 시작한 것처럼 기록을 정리하는 것.결과적으로 커밋 히스토리가 일직선(linear)으로 정리되어, merge보다 깔끔한 기록을 남길 수 있다. 올바른 동작 예시(master) A -- B -- C \ D -- E (foo)foo 브랜치를 master 최신(C) 위로 rebase:(master) A -- B -- C -- D' -- E' (foo)D, E 커밋이 그대로 옮겨지는 게 아니라 새로운 커밋(D', E') 으로 다시 생성된다.따라서 커밋 해시가 바..

git·github

Git 브랜치 병합과 충돌 관리

일반 병합 (3-Way Merge)브랜치에서 작업한 내용을 다른 브랜치와 합칠 때 새로운 커밋이 만들어진다.bar 브랜치와 master 브랜치가 동시에 작업을 진행한 경우.공통 조상 커밋을 기준으로 양쪽 변경을 합쳐 새로운 커밋을 생성한다.git checkout master git merge bar결과: bar와 master의 작업이 합쳐진 병합 커밋(merge commit)이 생긴다. 충돌(Conflict)충돌은 두 브랜치가 같은 파일의 같은 부분을 다르게 수정했을 때 발생한다.예시master → a.txt의 첫째 줄을 "B로 수정"foo → a.txt의 첫째 줄을 "C로 수정"merge 시 Git이 자동으로 어떤 변경을 적용할지 결정하지 못해 충돌이 발생한다. 충돌 표시 형식충돌이 발생하면 파..

git·github

Git 브랜치로 나누어 관리하기

Git의 가장 강력한 기능 중 하나는 브랜치(branch)이다. 브랜치를 통해 여러 작업을 동시에 진행하고, 필요에 따라 합칠 수 있다. 브랜치 기본 개념브랜치 = 나뭇가지 → 하나의 프로젝트에서 여러 개의 작업 흐름(라인)을 관리하는 방법브랜치가 없으면?모든 작업이 한 줄에 누적여러 명이 동시에 작업하기 불편충돌 시 관리가 어려움즉, 브랜치는 버전의 분기이자 협업의 필수 도구 브랜치 필요성브랜치가 없을 경우두 사람이 같은 코드 파일을 동시에 수정하면 충돌 발생일일이 코드 복사본을 만들어야 해서 비효율적합칠 때 어떤 부분을 수정했는지 추적이 힘듦브랜치가 있을 경우각자 독립된 공간에서 개발 가능기능 추가/버그 수정 등을 안전하게 진행필요할 때 merge하여 하나로 통합 브랜치 이름과 규칙최초 브..

git·github

Git Stash: 지금까지 작업 임시 보관하기

Stash란?Stash(스태시): 현재 작업 디렉터리의 변경 사항을 임시 저장소에 보관하는 기능아직 커밋하기 애매하거나, 다른 작업을 급히 해야 할 때 유용스태시 후작업 디렉터리는 원래 상태로 복원저장해둔 변경 사항은 나중에 다시 적용 가능 기본 사용법# 현재 변경 사항 임시 보관 git stash # 스태시 목록 확인 git stash list # 가장 최근 스태시 적용 (변경 사항 다시 꺼내오기) git stash apply # 특정 스태시 적용 git stash apply stash@{번호} # 스태시 적용 후 삭제 git stash pop # 스태시 삭제 git stash drop stash@{번호} # 모든 스태시 삭제 git stash clear 사용 예시 상황상황a.html, c.h..

git·github

Git 버전 관리 응용 (버전 비교, 되돌리기, 임시보관)

Git 기본 흐름[Working Directory] → [Staging Area] → [Repository(Commit)] (수정) (git add) (git commit)Working Directory : 실제 코드가 있는 공간Staging Area : 커밋할 준비가 된 변경 사항Repository : 커밋이 기록되는 저장소 버전 비교 (diff)커밋 간 차이점이나 변경 내역을 비교할 때 사용한다.# 워킹 디렉터리 vs 스테이징 영역git diff# 스테이징 영역 vs 저장소git diff --staged# 두 커밋 간 비교git diff 단순히 커밋 메시지가 아니라 파일 변경 내역을 추적할 수 있다.코드 리뷰, 디버깅, 협업 과정에서 반드시 사용된..

tmddk
'git·github' 카테고리의 글 목록