-
git commandComputer Science/Git 2018. 8. 20. 12:42반응형
git command
구조
코드는 아래 세 단계에 걸쳐 저장된다.
1. 스테이징
2. 커밋
3. 원격저장소
※ 기본 원격 저장소를 origin 이라고 부른다.
※ git 의 저장소는 3가지 단계로 나누어진다. 커밋한 소스가 보관되는 저장소, 현재 프로젝트 파일들이
있는 작업트리, 저장소와 작업트리 사이의 버퍼 영역으로 커밋될 대상이 저장되는 스테이징 영역
※ 형상관리를 하지 않을 파일은 .gitignore 파일에 추가한다.
※ git add {파일명} 으로 파일을 스테이징 상태에 넣는다.
※ git commit 으로 스테이징 상태에 있는 모든 변경사항을 커밋한다. 여기까지가 로컬에서의 작업
※ git push 로 커밋된 저장소를 원격 저장소로 밀어넣는다.
환경 설정
git config --global --list : 현재 설정 정보 조회. --global 옵션은 전역설정에 대한 옵션. 현재 프로젝트에만 적용할 때는 주지 않음.
git config --global user.name "사용자명" : 사용자명을 등록
git config --global user.email "이메일주소" : 이메일 주소를 등록
git config --global color.ui "auto" : 터미널에 표시되는 메시지에 칼라를 표시해줌
기본 명령어
git init : 현재 디렉토리에 git 저장소 생성
git clone {url} : 원격 저장소로부터 복제
git status : 변경 사항 체크
git add {파일명} : 특정 파일 스테이징
git add * : 변경된 모든 파일 스테이징
git commit -m "{변경 내용}" : 커밋. -m은 커밋메시지를 주는 옵션으로 여러 줄의 커밋메시지를 쓸 경우 -m을 여러개 사용
git push origin master : 원격으로 보내기
git remote add origin {원격서버주소} : 원격저장소 추가
git --version : 현재 git의 버전을 확인
git mv {파일명} {새파일명} : 기존에 존재하는 파일을 새파일로 이동. 변경이력은 그대로 유지
git checkout --{파일명} : 아직 스테이징이나 커밋을 하지 않은 파일의 변경내용을 취소하고 이전 커밋상태로 돌림
git archive --format=tar --prefix=폴더명/브랜치 혹은 태그 | gzip > 파일명.tar.gz
git archive --format=zip --prefix=폴더명/브랜치 혹은 태그 > 파일명.zip
: 해당 브랜치나 태그를 압축파일로 만듬. --prefix를 주면 압축파일이 해당 폴더안에 생성됨
git rev-parse --show-toplevel : git 저장소 내에서 입력하면 루트 디렉토리를 표시
Commit
git rebase -i HEAD~4 : 최신 4개의 커밋을 하나로 합치기
git commit --amend : 마지막 커밋메시지 수정(ref)
git add {변경한 파일명} / git commit -m "{변경 내용}" : 간단한 commit 방법
git commit -C HEAD -a --amend : 지정한 커밋의 로그메시지를 다시 사용하여 기존 커밋을 수정
git diff : 스테이징 영역과 현재 작업트리의 차이점을 표시
Commit 이력 확인
git log : 모든 커밋 로그 확인
git log -3 : 최근 3개 커밋 로그 확인
git log --pretty=oneline : 각 커밋을 한 줄로 표시
Commit 취소
git reset HEAD^ : 마지막 커밋 삭제
git reset --hard HEAD : 마지막 커밋 상태로 되돌림
git reset HEAD * : 스테이징을 언스테이징으로 변경, ref
원격저장소
git fetch : 원격저장소의 변경사항을 가져와서 원격브랜치를 갱신
git pull : git fetch에서 하는 원격저장소의 변경사항을 가져와 local branch에서 합치는 작업
git push : 현재 local branch와 같은 이름의 브랜치에 push
git remote rm {이름} : 원격저장소를 제거
Branch
git checkout better_branch
git merge --strategy=ours master # keep the content of this branch, but record a merge
git checkout master
git merge better_branch # fast-forward master up to the merge
: master 브랜치를 특정 커밋으로 옮기기
Branch 목록
git branch : 로컬
git branch -r : 리모트
git branch -a : 로컬, 리모트 포함된 모든 브랜치 보기
Branch 생성
git branch new master : master -> new 브랜치 생성
git push origin new : new 브랜치를 리모트로 보내기
Branch 삭제
git branch -D {삭제할 브랜치 명} : local
git push origin :{the_remote_branch} : remote
빈 Branch 생성
git checkout --orphan {새로운 브랜치 명}
git commit -a : 커밋해야 새로운 브랜치 생성됨
git checkout -b new-branch : 브랜치 생성과 동시에 체크아웃
리모트 Branch 가져오기
git checkout -t origin/{가져올 브랜치명} : ref
Branch 이름 변경
git branch -m {new name} : ref
Tag
git tag -a {tag name} -m {tag message} {commit hash} : 태그 생성
git tag {tag name} {tag name} -f -m "{new message}" : Edit tag message
태그 삭제
git tag -d {tag name}
git push origin : tags/{tag name} : remote
태그 푸시
git push origin --tags
git push origin {tag name}
git push --tags
파일 삭제
git rm --cached --ignore-unmatch [삭제할 파일명]
최적화
git gc
git gc --aggressive
Alias
~/.gitconfig 파일을 설정하여 깃 명령어의 앨리어스를 지정할 수 있음
~/.gitconfig > alias 부분:
[alias]
br = branch
co = checkout
rb = rebase
st = status
cm = commit
pl = pull
ps = push
ad = add
tg = tag
df = diff
[출처]
https://github.com/jeonghwan-kim/git-usage
https://blog.outsider.ne.kr/572
반응형'Computer Science > Git' 카테고리의 다른 글
[Git] Git 되돌리기 Reset & Revert (0) 2019.05.16 [git error] Your local changes to the following files would be overwritten by merge (0) 2018.08.20 Synchronize the git fork repository to the latest version (0) 2018.08.20 Git Error - Another git process seems to be running in this repository (0) 2018.04.23 [Git] Git & Github (0) 2017.12.26