본 포스팅은 제대로 파는 Git & GitHub - by 얄코님의 인프런영상을 학습하고 정리한 내용입니다.
1. 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가 된 상태로)
커밋이 추가되기 전 상태로 되돌리기
git reset --soft (바로 전의 커밋 해시 코드)
파일에서의 수정사항이 삭제되지도 않았고, Staging area에 add도 되어있다.
커밋을 하고 싶다면 간단히 git commit -m ‘커밋 메시지’만 하면 된다.
2. --mixed(default) : repository에서 working directory로 이동
커밋이 추가되기 전 상태로 되돌리기
git reset –-mixed (바로 전의 커밋 해시 코드)
수정사항이 git add . 되기 전으로 돌아갔다. (Changes not staged for commit)
=> 파일에는 변화가 저장되었지만 working directory안에 있어서 커밋을 하고 싶다면 git commit -am ‘커밋 메시지’를 하거나 git add . + git commit -m ‘커밋 메시지’를 해야 한다.
3. --hard : 수정사항 완전히 삭제
아예 수정된 내용이 삭제되었다.
커밋을 하려면 다시 처음부터 파일을 수정하고, add를 한 뒤에, commit을 해야 한다.
'Github' 카테고리의 다른 글
[git 협업 시작] 다른 사람이 만든 브랜치에 협업하기 (0) | 2022.05.29 |
---|---|
6. HEAD / fetch와 pull (0) | 2022.03.31 |
4. GitHub 사용하기: push와 pull / 원격저장소와 로컬저장소 (0) | 2022.03.30 |
3. 여러 branch를 생성하고 사용해보기(merge와 rebase) (0) | 2022.03.29 |
2. 프로젝트 변경사항(add, commit, reset, revert) (0) | 2022.03.28 |