버전 관리 방법
1. 혼자서 버전 관리
2. 다른 사람과 버전 관리
다른 사람과 버전 관리
1. 직접 서버를 구성
2. SaaS 서비스 이용 - 외부 컴퓨터에서 데이터를 저장하여 버전을 관리하는 것(ex. Github)
*외부 컴퓨터가 날아간다면? => 각각 개별의 로컬에 버전이 백업되어 있기 때문에 복구 가능(Git의 분산 시스템 방식)
*git과 github의 차이는?
git - 분산 버전 관리를 위한 도구 및 시스템
github - Git 저장소를 호스팅하는 클라우드 기반 플랫폼. 즉, 데이터를 저장할 수 있는 외부 컴퓨터라고 보면 됨
파일의 네 가지 상태
Tracked - .git이 추적 중인 파일(commit 가능)
Untracked - .git이 추적 중이지 않은 파일(commit 불가능)
modified - 변경 내역이 발생한 파일(commit 가능)
unmodified - 변경 내역이 발생하지 않은 파일(commit 불가능)
스테이징(Staging)
git에서 변경된 파일을 커밋하기 위해 커밋할 대상인 작업 파일들을 잠시 staging 영역으로 이동시키는 것
git 명령어 정리
git init
git 로컬 저장소 생성 및 초기화
명령어 실행 시 현재 경로에 .git/ 이라는 숨김 폴더 생성
.git/ 폴더를 삭제할 경우, 모든 작업 내역에 대한 추적이 끊기기 때문에 주의해야 함!
git config
git 환경 설정 및 사용자 정보 등록
git과 관련된 메타 정보, 환경 설정 등을 관리할 때 사용하는 명령어다.
누가 어떤 작업을 수행했는지 확인하기 위해 사용자 정보를 등록할 때 주로 사용한다.
git config --list => 현재 등록된 정보들 조회(key=value 형태)
git config --global user.email => github 가입 시 사용한 이메일 주소 입력
git config --global user.name => github 가입 시 사용한 username 입력
git status
현재 작업 디렉토리의 상태 확인
현재 작업 중인 브랜치와 commit할 내역 등 확인할 수 있다.
git add
새롭게 생성한 파일을 git에게 추적 및 관리하도록 지정 or
기존에 추적하던 파일의 변경 사항을 커밋하기 위해 스테이징(staging 영역에 추가)
git add . => 변경된 전체 파일 대상
git add 파일명 => 해당 파일 대상
git commit
현재까지의 작업 내역을 하나의 기록으로 저장(스테이징된 파일을 저장소에 기록)
git commit -m "작업 내용 설명"
git log
현재까지 수행된 과거의 모든 Commit 기록 확인
git log --oneline # 커밋 내역을 한 라인으로 요약해서 조회
git log --graph # 커밋 내역을 그래프 형태로 조회
git restore
스테이징 영역에 추가된 파일 취소하기
git restore 파일명 # 파일 복원
git restore --staged 파일명 # 스테이징에서 제거
git checkout
다른 브랜치로 이동하거나 특정 커밋으로 이동
git checkout main # 메인 브랜치로 이동
git checkout feature # 새 브랜치 생성 및 이동
git diff
커밋 내역끼리 차이점 비교하기
git diff --staged # 스테이징과 저장소 비교
git diff 커밋해시값..커밋해시값
git remote
로컬 저장소에 원격 저장소 연결
git remote add origin 레포 주소
git remote -v # 원격 저장소 확인
git push
로컬 커밋을 원격 저장소로 업로드
git push origin main # main 브랜치를 원격으로 푸시
git clone
원격 저장소를 로컬로 복제
git clone 레포 주소
git fetch
원격 저장소에서 최신 변경사항을 가져옴(병합은 하지 않음)
git merge
원격 저장소의 변경 사항을 로컬 저장소에 반영
git merge feature # feature 브랜치를 현재 브랜치에 병합
git pull
fetch + merge를 한 번에 수행(변경 사항을 가져오고 병합)
git pull origin main
git branch
브랜치를 생성하거나 확인
git branch # 현재 브랜치 목록 보기
git branch 브랜치명 # 새 브랜치 생성
git stash
현재 작업 중인 변경사항을 임시 저장
git stash # 변경사항 저장
git stash pop # 저장된 변경사항 복원
git rebase
브랜치의 커밋 이력을 재정렬하여 깔끔하게 유지
git rebase main # 현재 브랜치를 main 위에 재정렬
git cherry-pick
특정 커밋만 선택적으로 다른 브랜치에 적용
git cherry-pick <commit-hash>
git blame
특정 파일의 변경 내역과 작성자 확인
git blame 파일명
git... 명령어 많다...! gui에 너무 익숙해졌으니.. cli 연습을 많이 해보자💪🏻
'Git' 카테고리의 다른 글
[git] fork한 레포 원본 저장소에서 변경사항 받아오기(업데이트) (0) | 2023.01.22 |
---|