[Git] git checkout git checkout : 브랜치(branch), 커밋(commit), 태그(tag) 등에서 작업하고자 하는 버전을 가져오는 명령어 1. 브랜치 전환 현재 작업중인 브랜치를 전환, 이때 전환되는 브랜치는 이미 존재하는 브랜치 중 하나여야함 git checkout 2. 커밋 복원 해당하는 커밋으로 작업 디렉토리를 복원함 이때 해당 커밋은 이미 저장소에 존재하는 커밋 중 하나여야 함 git checkout 3. 브랜치에서 파일 가져오기 브랜치에서 파일을 가져옴 작업 디렉토리에 이미 동일한 파일이 존재할 경우, 해당 파일이 덮어씌여짐 git checkout -- 4. 새로운 브랜치 생성 및 전환 새로운 브랜치를 생성하고 해당 브랜치로 전환 git checkout -b
[Git] Commit Git Commit : Git에서 변경 사항을 저장하고 관리하기 위한 핵심 개념 중 하나 현재 작업 중인 변경 사항을 저장소에 커밋(저장)할 수 있음 각 커밋은 고유한 해시 값과 함께 저장되며, 이전 커밋과의 차이를 기반으로 변경 사항을 추적 커밋 메세지는 다른 사람이 변경 사항을 이해할 수 있도록 명확하게 작성하는 것이 좋음 git add . git commit -m "커밋 메세지" 커밋 메시지 수정 git commit --amend -m "수정된 커밋 메시지" 이전 commit 취소 이전 커밋 히스토리 확인 git log 히스토리에서 취소하려는 커밋의 해시 값을 복사 git reset git reset HEAD~1 #가장 최근의 커밋을 취소 ✔ git reset은 로컬 브랜치에..
[Git] 파일 내용 비교하기 (git diff) Git diff : Working Directory와 Staging Area간의 비교 commit간의 비교, branch간의 비교도 가능 Git diff 명령어 commit된 파일 상태와 현재 수정중인 상태 비교 git diff commit된 파일 상태와 add된 파일 상태 비교 git diff --staged commit간의 상태 비교 1 (commit hash) git diff [커밋 해쉬 1] [커밋 해쉬 2] 🔎 commit hash : git에서는 commit id로 hash값을 사용 commit hash는 git log를 통해서 확인 가능 commit 간의 상태 비교 2 (HEAD) : 가장 최근의 커밋과 그 전의 커밋을 비교 git diff ..
[Git] Branch 생성, 삭제, 가져오기 Branch 생성 git branch git branch 생성한 브랜치로 이동 git checkout 생성과 동시에 이동 git checkout -b Branch 변경 git branch -m Branch 삭제 git branch -D 원격 저장소에서 Branch 가져오기 원격 저장소 업데이트 git pull 원격 저장소의 브랜치 리스트 확인 git branch -r 원격 저장소의 branch 가져오기 git checkout -t origin/ 원격 저장소와 로컬 저장소에 동일한 branch 명이 있을 때, 강제로 가져오기 git checkout -f -t origin/
[Git] Pull과 Fetch의 차이 Pull : 원격 저장소에서 변경된 메타 데이터 정보를 확인할 뿐만 아니라, 최신 데이터를 복사하여 로컬 Git에 가져옴 git pull 원격저장소 브랜치 Fetch : 로컬 Git에게 원격 저장소에서 최신 메타데이터 정보를 확인하라는 명령어를 전달 원격 저장소에 변경 사항이 있는지 확인만 하고, 변경된 데이터를 로컬 Git에 실제로 가져오지 않음 git fetch 원격저장소 브랜치가 여러개라면 git fetch후 변경이 있는 브랜치로 가서 확인 git brach -r git checkout 브랜치 git log를 사용해 commit 내역 확인 git log ✔ git fetch를 사용하면 마지막 pull 이후 원격 저장소 또는 브랜치에 적용된 변경 사항을 확인 할..
[Git] 충돌 (Conflict) 1. Merge 과정에서 발생하는 충돌 Merge 과정 중 충돌이 발생했을 때 1️⃣ Merge 취소 --abort 옵션으로 취소 후 status로 상태 확인 git merge --abort git status 2️⃣ 충돌이 난 파일 수정 충돌이 난 파일의 이름이 myfile일 때, myfile을 확인 후 수정 파일을 열어보면 어느부분에서 충돌이 났는지 확인 할 수 있고, 수정하면 됨 > master hello world 3️⃣ 충돌이 난 파일 add 후 다시 commit git add myfile git commit -m "resolve coflict!" 2. Rebase 과정에서 발생하는 충돌 Rebase 과정에서 충돌이 일어날 경우, Rebase가 진행되지도 끝나..
[Git] Rebase Git에서 한 브랜치에서 다른 브랜치로 합치는 방법에는 두가지가 있음 하나는 Merge고 하나는 Rebase Merge 브랜치가 experiment와 master로 나누어진 경우 두 브랜치를 합치는 가장 쉬운 방법은 Merge 명령어를 사용하는 것 커밋 두개 (C3, C4) 와 공통 조상 (C2)를 사용하는 3-way Merge로 새로운 커밋 (C5) 을 만들어냄 Rebase C3에서 변경된 사항을 Patch로 만들고 이를 다시 C4에 적용하는 방법이 있음 이와 같은 방식을 Rebase라고 함 🔎 Git Patch : Commit을 하나의 Patch 파일로 만들 수 있음 패치를 이메일로 보내거나 여러개의 커밋을 하나의 패치로 만들 수 있음 아래와 같은 명령어로 rebase git ..
Git 원격 저장소 Git 리모트 저장소 리모트 저장소 (remote repository) 리모트 저장소는 인터넷이나 네트워크 어딘가에 있는 저장소를 말함 리모트 저장소를 관리할 줄 알아야 다른 팀원과 협업이 가능함 협업을 한다는 것은 리모트 저장소를 관리하면서 데이터를 Push하고 Pull하는 것 리모트 저장소를 관리한다는 것은 저장소를 추가, 삭제하는 것 뿐만 아니라 브랜치를 관리하고 추적할 지 말지 등을 관리하는 것 리모트 저장소 확인하기 git clone https://github.com/Jeonghy0517/2023BucketList cd 2023BucketList git remote git remote -v ✔ Git clone 저장소를 Clone하면 명령은 자동으로 리모트 저장소를 Origi..
Git 커밋 히스토리 조회 & 되돌리기 Git 히스토리 조회 Git log 명령어를 통해 히스토리를 조회 git clone https://github.com/Jeonghy0517/2023BucketList git log Git log 옵션 -p 내역을 원하는 숫자 만큼 조회 --stat 통계 정보 조회 --pretty=[출력형식] oneline, short, full, fuller 출력 형식 지정 --pretty=format :"%h - %an, %ar : %s" 출력 포맷 변경 --pretty=format : --graph 아스키 코드로 그래프 출력 --no-merges 머지 커밋을 제외 --since=날짜 명시한 날짜 이후의 커밋만 검색 --until = 날짜 명시한 날짜 이전의 커밋만 검색 Git ..
Git 사용법 Git 설치 (CLI) Git - Installing Git This book was written using Git version 2.0.0. Though most of the commands we use should work even in ancient versions of Git, some of them might not or might act slightly differently if you’re using an older version. Since Git is quite excellent at pres git-scm.com Linux CentOS (Fedora) #패키지로 설치 sudo yum install git #소스코드로 설치 sudo yum install curl-devel..
GIT의 기초 버전 관리 버전 관리 (VCS - Version Control System) 이란? 파일 변화를 시간에 따라 기록했다가, 특정 시점의 버전을 다시 꺼내올 수 있는 시스템 실제로 거의 모든 컴퓨터 파일의 버전을 관리할 수 있음 시간에 따라 수정 내용을 비교할 수 있고, 누가 언제 만들어낸 이슈인지 알 수 있음 버전 관리의 종류 로컬 버전 관리 중앙 집중 형 버전 관리 (CVCS) 분산 버전 관리 (DVCS) Git이란 Git 분산 버전 관리의 대표적인 예가 Git 빠른 속도, 단순한 구조, 완벽한 분산 비선형적인 개발 (수천 개의 동시 다발적인 브랜치) Git Snapshot 스냅샷을 기반으로 함 (다른 분산 버전 관리 시스템은 델타를 기반으로 사용) 파일을 하나씩 별도로 관리하지 않고 프로..