시작 명령어
- git init: 로컬에서 .git 디렉토리를 만듦
- git clone: 기존 remote 저장소의 모든 데이터를 로컬로 복사
형상 관리
- Tracked file
- Git에서 형상 관리하는 파일
- Unmodified(Committed): 로컬 데이터베이스에 커밋된 상태. git clone 후 모든 파일은 이 상태이다.
- Modified: 파일이 변경됐지만 커밋되지 않은 상태
- Staged: 변경된 파일이 커밋할 준비가 된 상태
- Untracked file
- 새로 생성되어 Git에서 관리하지 않는 파일
관련 명령어
- git status: 파일 상태 확인 가능. -s 옵션으로 간략하게 확인 가능
- git add <file>: untracked file(혹은 modified file)을 staged 상태로 변경
- git diff: tracked file이 modified된 경우, 그 차이를 비교. --staged 옵션을 넣으면 committed와 staged의 차이를 비교
- git commit: staged file들을 commit
- git rm -f <file>: 로컬 파일을 삭제하면서 untracked로 바꾸는 명령어. 로컬에서 삭제하고 커밋해도 된다. (-f 옵션 필수)
- git mv <file1> <file2>: 파일의 이름을 변경하면서 git에도 알리는 방법
- git log: commit 기록을 볼 수 있다. --pretty=oneline 옵션으로 보는 것이 편하다.
- git commit --amend: 완료한 커밋을 수정할 때 사용. 현재 staging area의 내용까지 합쳐서 커밋한다.
- git restore --staged <file>: staging area에 들어간 file을 unstaged 상태로 변경
- git restore <file>: modified file을 이전 커밋으로 초기화
- git show: 현재 커밋에 대한 정보 확인
Remote
- 원격 저장소
- 협업을 위해 로컬이 아닌 중앙 저장소를 두는 것
관련 명령어
- git remote: remote 저장소 확인
- git push <remote> <branch>: 로컬 커밋을 remote 저장소의 branch에 저장
- git fetch <remote>: remote 저장소에서 모든 데이터를 가져 옴. merge는 별도로 해야 함.
- git pull <remote>: fetch + merge
- git remote show <remote>: remote의 구체적 정보 확인
태그
- Git에서도 태그를 지원
- 보통 릴리즈 시에 버전을 매길 때 사용한다.
- Lightweight 태그와 Annotated 태그가 존재한다.
- Lightweight 태그는 특정 커밋에 대한 단순한 포인터 역할
- Annotated 태그는 메타데이터, GPG 서명 등등을 지원한다. 일반적으로는 이 태그를 사용한다.
관련 명령어
- git tag: 태그 확인. 와일드 카드로 태그를 검색할 때는 -l 옵션을 붙여서 해줄 것.
- git tag <tag>: lightweight 태그를 추가
- git tag -a <tag> -m <message>: annotated 태그를 추가
- git tag <tag> <commit_id>: commit id(hash)를 사용하여 이전 커밋에 대해 태그를 붙일 수 있다.
- git show <tag>: tag에 대한 커밋 정보 확인(annotated 태그의 경우 태그 정보도 확인 가능)
- git push <remote> <tag>: 태그는 별도로 push해야 remote에 공유됨 (pull은 자동)
- git checkout <tag>: 특정 태그 커밋으로 이동
.gitignore
- git에서 파일, 디렉토리를 무시하도록 설정
- 패턴을 사용하여 매칭되는 파일과 디렉토리를 git 저장소에 추가하지 않는다.
'GitOps > Git' 카테고리의 다른 글
[Git] Git Flow (0) | 2025.01.07 |
---|---|
[Git] 브랜치 (0) | 2024.12.31 |
[Git] 개념 (0) | 2024.12.20 |
[Git] Github flow 실습: Member편 (0) | 2024.06.24 |
[Git] Github flow 실습: Owner편 (0) | 2024.06.24 |