일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- LifeCycle
- TEST
- drift
- textview
- intent
- textfield
- Coroutines
- Flutter
- 테스트
- data
- livedata
- activity
- 계측
- Button
- 앱
- android
- Compose
- DART
- appbar
- ScrollView
- 앱바
- Dialog
- 안드로이드
- Kotlin
- scroll
- binding
- tabbar
- Navigation
- CustomScrollView
- viewmodel
- Today
- Total
Study Record
[Git&GitHub] git의 3가지 공간과 git rm/mv/restore/reset 본문
git의 3가지 공간
1. Working directory
- untracked(Add된 적 없는 파일, ignore된 파일) / tracked(Add된 적 있고 변경내용이 있는 파일) 된 파일이 존재한다.
2. Staging area
- Working directory에서 git add 명령어로 Staging area로 이동한다.
- 커밋을 위한 준비 단계이다.
3. Repository
- Staging area 에서 git commit 명령어로 Repository 로 이동한다.
- 커밋된 상태이다.
파일 삭제와 이동으로 알아보는 git 공간 변화
1. 파일 삭제
어떤 프로젝트에서 파일을 그냥 삭제한다면 이 변화는 아직 Working directory에 있다.
위의 그림은 tigers.yaml을 수동으로 삭제하고 상태를 보고 add 한 뒤의 상태를 본 모습이다. 보는 바와 수동으로 삭제하는 경우는 아직 Working directory에 들어있는 상태이다. 여기서 git add . 을 수행하면 staging area로 이동되어 빨간색에서 초록색으로 tigers.yaml 글자가 바뀐 것을 볼 수 있다.
이제 git rm 명령어를 사용하여 파일을 삭제할 경우이다.
# 파일 삭제
# 형식 : git rm "파일 이름"
git rm tigers.yaml
위의 그림을 보면 git rm 명령어로 파일을 삭제할 경우 바로 staging area에 삭제된 tigers.yaml 파일 정보가 들어있는 것을 알 수 있다.
2. 파일 이동
어떤 프로젝트에서 파일의 이름을 수동으로 바꾸면 다음과 같은 상태가 된다. (tigers.yaml -> zzamtigers.yaml)
위의 그림을 보면 수동으로 삭제한다면 아직 Working directory에 있는 것을 볼 수 있다.
add 를 한 뒤에 상태를 보면 정상적으로 이름이 변경되었다는 표시가 보이고 staging area에 들어간 것을 볼 수 있다.
이제 git mv 명령어를 사용하여 파일의 이름을 바꾼면 다음과 같은 결과가 나온다.
# 형식 : git mv "원본 파일 이름" "변경된 파일 이름"
git mv tigers.yaml zzamtigers.yaml
바로 staging area로 들어간 것을 볼 수 있다.
되돌리기! - restore
staging area 에서 내가 다음번에 커밋하고 싶어 Working directory로 되돌리고 싶다면 resotre 명령어를 사용하면 된다.
# staging area -> Working directory 로 되돌리기!
# 형식 : git restore --staged "파일명"
git restore --staged pumas.yaml
# Working directory 에서 수정하기 전 상태로 되돌리기!
# 형식 : git restore "파일명"
git restore pumas.yaml
git reset 의 세가지 옵션
--soft : Repository -> Staging area
--mixed : Repository -> Working directory [default]
--hard : 수정 사항 완전 삭제
'Git' 카테고리의 다른 글
[Git&GitHub] fetch vs pull (0) | 2022.03.01 |
---|---|
[Git&GitHub] Head? (0) | 2022.03.01 |
[GitHub&Git] 원격 브랜치 다루기 (0) | 2022.03.01 |
[GitHub&Git] push와 pull 과 충돌 해결과 강제 push (0) | 2022.02.22 |
[GitHub] 원격 저장소 만들기 & 다운받기(clone) (0) | 2022.02.22 |