깃 배운내용
# Git 기본 개념 및 명령어 정리
## Git 사용 목적
1. 파일 및 폴더 변경 사항 관리
2. 팀 개발 협업 관리
## Git vs GitHub
- Git: 로컬에서 파일 변경 사항들을 관리하는 도구
- 도구 종류: Git CLI 명령어, TortoiseGit, SourceTree
- GitHub: 로컬에서 만든 파일을 원격지에서 관리할 수 있도록 지원하는 사이트
## OS 시스템 명령어
| 명령어 | 설명 |
|--------|------|
| cd 폴더명
| 현재 폴더 위치 변경 |
| dir
| 현재 폴더의 파일 및 폴더 조회 |
## Git 기본 용어
- Branch: Git의 작업영역(work area)
- Master: Git의 기본 브랜치 이름
- Commit: 현재 작업한 내용들을 Git에 저장하는 완료 기능
- HEAD: 현재 작업 브랜치의 위치
- Remote/Origin: Git의 원격지에 대한 이름
## Git 명령어 상세 정리
### 1. 환경 설정 명령어
```bash
# Git 환경 정보 조회
git config --list
# 사용자 이름 설정
git config --global user.name "사용자이름"
# 사용자 이메일 설정
git config --global user.email "이메일주소"
# 현재 폴더에 Git 초기화
git init
```
### 2. 파일 상태 관리 명령어
```bash
# Git에서 관리하는 파일들의 상태 확인
git status
# 파일을 staged area로 추가
git add 파일명1 파일명2
git add * # 전체 파일
# staged area에서 파일 제거 (unstaged로 이동)
git rm --cached 파일명
# staged area의 파일들을 commit
git commit -m "커밋 메시지"
```
### 3. 히스토리 조회 명령어
```bash
# 커밋 히스토리 조회
git log
# 커밋 내용까지 자세히 조회
git log -p
# 변경 사항 비교
git diff
```
### 4. 커밋 수정 명령어
```bash
# 마지막 커밋 메시지 변경
git commit --amend -m "새로운 메시지"
# 최근 3개 커밋 수정 (대화형)
git rebase -i HEAD~3
```
### 5. 버전 되돌리기 명령어
```bash
# 마지막 커밋을 스테이징 전 상태로 되돌리기
git reset HEAD^
# 마지막 커밋 1개 삭제 + 변경된 파일도 함께 되돌림
git reset --hard HEAD^
# 마지막 커밋 2개 삭제 + 변경된 파일도 함께 되돌림
git reset --hard HEAD^^
# 마지막 커밋 내용 완전 삭제
git update-ref -d HEAD
```
### 6. 원격 저장소 관리 명령어
```bash
# 원격 저장소 연결 (최초 1회)
git remote add origin 원격저장소URL
# 로컬 작업 내용을 원격 저장소에 업로드
git push
# 원격 저장소의 모든 내용을 로컬로 복제
git clone 원격저장소URL
# 원격 저장소의 최신 변경사항을 가져와서 병합
git pull
# 원격 저장소의 변경사항만 가져오기 (병합하지 않음)
git fetch
# 가져온 변경사항을 현재 브랜치와 병합
git merge
```
## Git 작업 프로세스
### 로컬에서 원격지로 파일 적용하는 과정
1. 파일 생성/수정/삭제
2. git add (파일을 staged area로 추가)
3. git commit (변경사항을 로컬 저장소에 저장)
4. git push (로컬 저장소를 원격 저장소에 업로드)
### 원격지에서 로컬로 파일 적용하는 과정
1. 원격지 연결 (최초 1회만)
2. git pull (원격 저장소의 변경사항을 가져와서 병합)
## Clone 시 추가 고려사항
- git clone
명령어 사용 시 자동으로 원격 저장소가 연결됨
- 복제된 저장소는 이미 Git이 초기화된 상태
- 기본 브랜치로 자동 전환됨
- 원격 저장소의 모든 히스토리를 포함하여 복제됨
## Git 파일 상태 흐름도
```
작업 디렉터리 → [git add] → Staged Area → [git commit] → 로컬 저장소 → [git push] → 원격 저장소
↑ ↓
└─────────────────── [git pull] ←─────────────────────────────┘
```
이러한 Git 명령어들을 숙지하면 효율적인 버전 관리와 팀 협업이 가능합니다.
댓글을 작성해보세요.