GIT
git : Linux 커널 소스를 관리하기 위해 리누스 토발즈가 직접 개발한 분산형 버전관리 도구.
분산형이라는 의미는 여러 클라이언트들이 각자의 컴퓨터에 저장소를 반들어 중앙 서버의 전체 사본을 가지고 작업하는 것임.
SVN과 차이점
SVN
- 중앙 서버에서 소스코드와 히스토리를 관리함
GIT
- 소스를 여거 개발 PC와 저장소에 분산해서 저장
- 로컬에서 버젼을 관리하기 때문에 SVN에 비해 빠름
GIT의 장점
- 같은 파일을 여러 명이 동시 작업하는 병렬 개발 가능
(브랜치를 통해 개발한 뒤, merge 하는 방식으로 개발 진행 가능) - 분산 관리이기 때문에 중앙저장소에 문제가 생겨도 원상복구 가능
Git 기본 용어
- repository : 저장소를 의미함
저장소를 통해 소스, 히스토리, 태그의 관리가 가능하며, 저장소를 통해 작업자가 변경한 소스의 히스토리 확인 가능 - working tree : 저장소의 어느 한 시점을 바라보는 작업자의 현재 시점
- staging area : 저장소에 커밋하기 전에 커밋을 준비하는 위치
- commit : 현재 변경된 작업 상태에서 점검이 끝나면 확정하고 저장소에 저장하는 작업
- head : 현재 작업중인 branch를 가리킴
- branch : 가지 또는 분기점
작업을 할 때 원본을 복사해서 branch에서 작업을 한 후 완전할 때 merge하여 작업함 - merge : 다른 branch의 내용을 현재 branch로 가져와 병합하는 작업.
git 주요 명령어
ropository 생성
- git init : 깃 저장소 초기화
- git clone {url} : 원격 저장소 복사
상태 확인
- git status : 작업 디렉토리에 변경된 파일 확인하기
- git diff : 변경된 파일들의 변경된 내용 확인
- git log : 변경 이력 보기
브랜치 작업
git branch : 로컬 브랜치 목록 확인
git branch -r : 원격 브랜치 목록 확인하기
git branch -av : 로컬과 원격 브랜치 목록 확인하기
git branch -m {old_name} {new_name} : 브랜치 이름 변경하기
git branch {new_branch_name} : 브랜치 생성
git checkout {branch_name} : 브랜치 변경하기
git branch -d {branch_name} : 브랜치 삭제
반영
- git add . : 모든 변경사항을 커밋 준비 "스냅샷"
- git add {file} : 특정 파일의 변경사항을 커밋 준비
- git commit -m '{message}' : 메세지와 함께 커밋하기
- git commit --ammend : 마지막 커밋 메세지 수정하기 (push한 commit에는 하지 말것)
취소
- git reset --hard HEAD^ : 이전 commit 취소, 변경사항 폐기
- git reset --soft HEAD^ : 이전 commit 취소, 변경사항 유지
- git reset --soft merge : merge 취소하기
- git reset --hard HEAD && git pull : 변경사항 폐기 후 원격 저장소의 최신 코드로 덮어쓰기
- git revert {commit_code} : 커밋 되돌리기
동기화 하기
- git fetch {remote} : 원격 저장소의 최신사항 가져오기
- git pull {remote} {branch} : 원격 저장소의 최신사항을 가져와서 병합하기
- git pull --rebase : 원격 저장소의 변경사항을 가져오고 초기화 하기
- git push : 원격 저장소에 변경사항 발행하기
- git merbe {branch} : 브랜치 병합하기
- git rebase {branch} : 리베이스 하기
브랜치의 변경사항 임시저장
- git stash : 임시로 변경사항 저장하기
- git stash pop : 임시 변경사항 불러오기
- git stash list : 임시 변경사항 보기
계정
- git global user.name "user_name" : git 계정 name 저장/수정
- git global user.email "user_email" : git 계정 email 저장/수정
728x90
반응형
'VCS' 카테고리의 다른 글
[GIT] 한 컴퓨터에서 Github 계정 여러개 사용하기 (0) | 2024.05.27 |
---|---|
[VCS] 좋은 커밋 메세지 간단 작성법 (0) | 2023.07.14 |
[GIT] 브랜치, 커밋 간 다른 파일 목록 조회 (0) | 2022.04.05 |
[GIT] remote branch 가져오기 (0) | 2022.04.05 |
[TortoiseSVN] Disconnect 방법 (0) | 2021.09.10 |