git 구성
git은 아래와 같은 구조로 구성이 되어있다.
기존에 git repository의 기본 브랜치는 master 브랜치였지만 whitelist/blacklist(인종차별), master/slave(주종관계) 의 의미를 담고있는 용어를 제거하기로 결정되어서 현재 기본 브랜치는 main 브랜치로 변경이 되었다.
- .git : git 디렉토리(히스토리) 관리가 된다.
- .gitignore : git commit시 ignore 지정 (*.txt, build/ 등)
- working directory : 작업할 파일을 관리, git add 명령어를 통해 staging area 로 옮길 수 있다.
- untracked : 트래킹 되지 않는 버전
- tracked : 트래킹 된 버전
- staging area : 버전 히스토리에 저장할 파일을 관리, commit 명령어를 통해 repository(.git directory)로 옮길 수 있다. git 에서는 staging area를 cache로 부르기도 한다.
- local repository(.git directory) : 버전 히스토리를 관리
- remote repository : 원격지의 git repository
git 명령어
git 명령어는 git-scm 사이트에서 상세한 확인이 가능하다
git init : git 초기화
git status : git 상태 조회
git status -s : git 상태 간략 조회(A : stage area 추가됨, M : working directory에서 수정됨, ?? : working directory에만 존재)
git diff : 변경 사항 추적
git diff --staged : stage area와 변경 사항 비교
git config --global -e : 글로벌 설정 수정
git config --global init.defaultBranch {기본브랜치} : 기본브랜치 변경 (git config --global init.defaultBranch main)
git config --global core.autocrlf {윈도우: true, MacOS : input} : 윈도우는 줄바꿈을 \r\n(carriage-return,line-feed)를 사용하고 MacOS 에서는 \n(line-feed)를 사용해서 git 저장소를 다양한 운영체제에서 사용시 줄바꿈이 달라질 수 있는데 이를 보완해준다. 저장소에 저장시 \r(carriage-return)을 제거 해서 저장을해주고 저장소에서 pull 할 때 윈도우의 경우에는 \r을 자동으로 붙여준다.
git config --global alias.sta status : alias 지정 (git sta 로 status 조회)
git config --list : 저장소별 설정 정보 조회
git config --global user.name {사용자명} : 사용자명 변경
git config --global user.email {email} : 사용자 email 변경
git config user.name : 사용자명 조회
git config user.email : 사용자 email 조회
git rm --cacked * : staging area 에서 파일 삭제
git add {file} : staging area로 이동
git add * : ignore 포함 모든 파일 staging area 이동
git add . : ignore 제외 모든 파일 staging area 이동
git clone {git repository} : 코드 갖고오기
git checkout {branch name} : 브랜치 체크아웃
git checkout -t {remote repository/branch name} : 원격 브랜치 체크아웃
git branch {branch name} : 브랜치 생성
git branch -r : 원격 브랜치 목록
git branch -a : 로컬 브랜치 목록
git branch -d {branch name} : 브랜치 삭제
git branch -m {branch name} {new branch name} : 브랜치 이름 변경
git commit -a -m {커밋설명} : repository 로 이동, -a 옵션은 모든 파일 대상
git stash save {description} : 작업코드 임시저장하고 브랜치 변경
git stash pop : 마지막으로 임시저장한 작업코드 가져오기
git push {remote name} {branch name} : 깃 원격지 repository에 저장
git pull : git 서버에서 소스 받아오기
git fetch : git 서버 최신 코드 조회
git reset — hard HEAD^ : commit한 이전 코드 취소(소스도 제거됨)
git reset — soft HEAD^ : 코드는 살리고 commit만 취소
git reset — merge : merge 취소하기
git reset — hard HEAD && git pull : git 코드 강제로 모두 받아오기
git reset HEAD~{이전 이력 숫자} : 이전 이력 숫자 기준으로 commit 취소
git cherry-pick {commit number} : 특정 commit 소스만 가져오기
git revert {commit number} : 특정 commit 버전만 되돌린다. 이력이 삭제되지 않고 소스만 되돌린다.
'Develop > java,spring' 카테고리의 다른 글
Rest, Restful, Restful API 차이 (0) | 2020.12.29 |
---|---|
JWT(Json Web Token) 이란? (0) | 2020.12.15 |
Okta(옥타) SSO(OIDC - Open ID Connect Application) 로그인 (1) | 2020.11.30 |
Java Stream GroupingBy 사용 (0) | 2020.11.26 |
JAVA 버전별 특징 (1) | 2020.11.20 |