본문 바로가기
Github

5. Git의 3가지 분류 공간과 삭제와 이동 / RESET

by 이쟝 2022. 3. 31.
본 포스팅은 제대로 파는 Git & GitHub - by 얄코님의 인프런영상을 학습하고 정리한 내용입니다.

1. Git의 3가지 분류 공간

git의 3가지 공간

Working directory Staging area Repository
untracked: Add 된 적 없는 파일,
ignore
된 파일(git이 관리하지 않는 파일)
커밋을 위한 준비 단계 커밋된 상태(버전이 있다.)
tracked: Add 된 적 있고, 변경 내역이 있는 파일(Git의 관리대상에 등록됨) git commit : Repository로 이동하는 명령어 .git directory라고도 불림
git add : Staging area로 이동하는 명령어 ) 작업을 위해 선택된 파일들  

- commit 되어되어 레포지토리에 들어간 후 수정사항이 발생하면 다시 Working directory의 Tracked 파일로써 스테이징을 기다리게 된다.

- 새로 추가되는 파일은 반드시 add 해서,해당 파일이 tracked 될 것임을 명시해야 한다.(Git이 새 파일을 무조건 다 관리해버리는 것을 방지한다.)

2. 파일의 삭제와 이동 

1. 삭제

git rm
  • 그냥 파일을 삭제하고 git status로 확인하면 삭제된 파일이 Working directory에 있다. 
    • git add . 를 해주면 Staging area로 이동
    • git reset --hard로 삭제한 것을 복원 가능

 

  • git rm으로 파일을 삭제하고 git status로 확인하면 삭제된 파일이 Staging area에 있다.
    • git commit을 해주면 Repository로 이동
    • git reset --hard로 삭제한 것을 복원 가능

 

 

2. 이동

git mv
  • 파일의 이름을 변경한 뒤 git status로 확인
    • 2가지 변화 생김( "기존 파일이 삭제되었다." / "새로운 파일이 untracked file로 생겨났다." )
    • git add . 를 해주면 Staging area로 이동 (renamed : 기존 파일 명 -> 새로운 파일명)
    • git reset --hard로 삭제한 것을 복원 가능

 

  • git mv로 파일의 이름을 변경하고 git status로 확인하면 변경된 파일이 Stating area에 있다. 
    •  git mv를 하면 바로 (renamed : 기존 파일 명 -> 새로운 파일명) 표시됨
    • git commit을 해주면 Repository로 이동
    • git reset --hard로 삭제한 것을 복원 가능

*파일을 Staging area에서 Working directory로 이동*

파일을 stage 상태에서 되돌리겠다는 의미(파일이 저장만 되어있는 상태로..!)

git restore --staged (파일명)

 

--staged를 빼면 working directory에서도 제거(아예 파일에서의 변화를 없애기)

git restore 파일명

3. reset의 세 가지 옵션

1. --soft : repository에서 staging area로 이동(커밋은 안됐지만 add가 된 상태로)

Add Lee in Tigers라는 커밋 추가

커밋이 추가되기 전 상태로 되돌리기

git reset --soft (바로 전의 커밋 해시 코드)

파일에서의 수정사항이 삭제되지도 않았고, Staging area에 add도 되어있다.
커밋을 하고 싶다면 간단히 git commit -m ‘커밋 메시지’만 하면 된다.

2. --mixed(default) : repository에서 working directory로 이동

Add Lee in Tigers라는 커밋 추가

커밋이 추가되기 전 상태로 되돌리기

git reset –-mixed (바로 전의 커밋 해시 코드)

수정사항이 git add . 되기 전으로 돌아갔다. (Changes not staged for commit)
=> 파일에는 변화가 저장되었지만 working directory안에 있어서 커밋을 하고 싶다면 git commit -am ‘커밋 메시지’를 하거나 git add . + git commit -m ‘커밋 메시지’를 해야 한다.

3. --hard : 수정사항 완전히 삭제

아예 수정된 내용이 삭제되었다.
커밋을 하려면 다시 처음부터 파일을 수정하고, add를 한 뒤에, commit을 해야 한다.