파일 관리 차원에서 알아야 할 개념
Tracked / Untracked ( Tracked : git 이 추적하며 버전관리를 하고 있는것 )
Stage / Unstage ( Stage : Commit 직전 머무르는 영역 )
Working directory / Stage(Index) / HEAD
( HEAD : Stage에 머무르던 파일들이 Commit 명령으로 local에 최종 기록)
——————————————————————————————-
폴더가 있다. Working directory 이다. 아무것도 없다.
m0.txt, m1.txt, m2.txt 파일 세개를 만들었다. 이 파일들은
Untracked & Unstage 상태이다.
세 파일들을 add 시켰다. 세 파일들은
Tracked & Stage 상태이다.
세 파일들을 commit 시켰다. 세 파일들은
Tracked & HEAD 상태이다.
m0.txt 의 내용이 없었는데 “000″을 기입하고 저장했다. 이 파일은
Tracked & Unstage 상태이다.
m0.txt 파일을 add 시켰다. 이 파일은
Tracked & Stage 상태이다.
m0.txt 파일을 commit 시켰다. 이 파일은
Tracked & Head 상태이다.
——————————————————————————————-
clone
git clone 저장소주소( git clone https://github.com/***.git )
status
git status (작업 경로 내의 파일 상태를 보여준다.)
add
git add 파일명.확장자 ( git add rm1.txt )
반대로 Unstage 하려면
git reset HEAD 파일명.확장자 ( git reset HEAD rm0.txt )
revert
내용 변경을 취소하고 최신 커밋 버전으로 돌아가고 싶을 때
git checkout – 파일명.확장자 ( git checkout – rm0.txt )
remove
git rm 파일명.확장자
하게 되면 파일이 지워지고 tracked 상태고 해제되고 Stage 상태가 된다.
이를 취소하기 위해서는
git reset HEAD 파일명.확장자 사용해 Unstatge 상태로 만들고
git checkout – 파일명.확장자 로 revert 해준다
삭제는 하나 파일을 local에 남겨두고 싶을때
git rm –cached 파일명.확장자
여러 개의 파일이나 디렉토리를 한꺼번에 삭제
git rm log/\*.log ( log 폴더 안의 *.log 파일 모두 삭제)
git rm \*~ ( ~로 끝나는 것 모두 삭제)
commit
git commit -m “커밋 시 남길 로그 내용”
git commit -m “커밋 시 남길 로그 내용” -a
-a 는 tracked 상태인 파일들을 자동으로 stage에 넘기고 커밋.
push
git push origin master
remote
git remote -v( 리모트 저장소 확인 )
git remote add 단축이름 url ( 리모트 저장소 추가 )
git fetch 단축이름
기타
git mv 파일명 파일명 ( 이름변경 )
git remote -v( 리모트 저장소 확인 )
git remote add 단축이름 url ( 리모트 저장소 추가 )