Git 저장소 생성
git init 새로운 git 저장소 생성git clone /로컬/저장소/경로 저장소 받아오기
git clone 사용자명@호스트:/원격/저장소/경로 원격 서버의 저장소를 복제
Cf) clone를 할 경우 프로젝트 히스토리를 전부 받아온다.
로컬저장소는 3개로 구성됨, 작업 디렉토리(working directory), 인덱스(staging area) HEAD(commit)이다.
git add <파일 이름> Index에 추가
git add *
git commit -m "description" 실제 내용 변경
git commit -a Tracked 상태의 파일을 자동으로 Staging Area에 넣음
git rm <파일 이름> 파일을 삭제하며, Staged 상태가 된다. 커밋하면 파일은 삭제되고 더이상 추적하지 않는다.
git rm --cached <파일 이름> 파일은 삭제하지 않고, 추적만 제거한다.
git mv file_from file_to 파일 이름 변경
작업 디렉토리에 상태는 Tracked(관리대상), Untracked(관리대상아님)으로 나뉜다.
Tracked는 또 Unmodified(수정하지 않음)과 Modified(수정함), Staged(커밋으로 저장소에 기록) 상태 중 하나이다.
git status -s 파일 상태를 요약해 출력한다.
git status --short
git log Commit 히스토리 조회
git log -p -2 Commit의 diff 결과를 보여준다. -2는 최근 2개의 결과만 노출
파일관리가 필요 없는 경우 .gitignore파일안에 무시할 패턴을 넣는다.
.gitignore 파일 패턴
아무것도 없는 라인이나, #로 시작하는 라인은 무시한다.
표준 Glob 패턴을 사용한다.
슬래시(/)로 시작하면 하위 디렉토리에 적용되지(Recursivity) 않는다.
디렉토리는 슬래시(/)를 끝에 사용하는 것으로 표현한다.
느낌표(!)로 시작하는 패턴의 파일은 무시하지 않는다.
되돌리기
git commit --amend 다시 커밋git commit -m 'initial commit'
git add forgotten_file
git commit --amend 하나의 커밋으로 기록된다. 두번 째 커밋은 첫번 째 커밋을 덮어쓴다.
리모트 저장소
git remote 리모트 저장소 확인git remote -v 단축 이름과 URL도 노출
git fetch <원격 서버 주소> 원격 저장소 데이터를 가져옴
git push origin master 원격 서버로 업로드 "master"는 브랜치 이름
git remote add origin <원격 서버 주소> 원격 서버 주소로 업로드
git remote show <원격 저장소 이름> 원격 서버 확인 가지치기(branch)
git checkout -b feature_x "feature_x"라는 명칭으로 가지 생성
git checkout master Master로 이동
git branch -d feature_x "featre_x"가지 삭제
git push origin <가지 이름> 원격 저장소 전송 전까지 다른 사람은 접근 불가
갱신과 병합
git pull 로컬 저장소를 원격 저장소에 맞춰 갱신git merge <가지 이름> 다른 가지의 변경 내용을 현재 가지에 적용
git add <파일 이름> 충돌 발생 시 직접 수정 후 파일 병합
git diff <원래 가지> <비교 대상 가지> 변경 내용 비교
git diff --cached Staged 상태인 파일 확인
git difftool 외부 도구 사용
Git diff는 Unstaged 상태만 보여준다. 수정한 파일을 Staging Area에 넣으면 아무것도 출력하지 않는다.
Tag달기
git tag 1.0.0 1b2e1d63ff 꼬리표(1.0.0) 달기, 1b2e1d63ff는 확정본 식별자이다.git log 확정본 식별자 얻기
git tag -a v1.4 -m 'my ver 1.4' Annotated tag 생성
git show v1.4 V1.4에 대한 태그 정보와 커밋 정보를 확인
git의 tag는 Lightweight 태그와 Annotated 태그가 있다. Lightweight는 특정 커밋에 대한 포인터이며, Annotated 태그는 git db에 만든이, 이메일, 태그 날짜, 태그 메시지도 다 저장한다.
로컬 변경 내용 되돌리기
git checkout -- <파일 이름> 로컬 변경 내용을 변경 전 상태로 되돌려준다. cf)인덱스에 추가된 변경 내용과 새로 생성한 파일은 그대로 남는다.git fetch origin
git reset --hard
origin/master
로컬에 변경 내용 및 확정본을 포기하고 원격 저장소의 최신 내용으로 갱신하며, 로컬 master 가지로 변경
Git Alias
Git config를 사용하여, 각 명령에 대한 Alias를 만든다.git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
0 개의 댓글:
댓글 쓰기