SCM (형상관리)
형상관리란 변경상황을 추적 통제 할 수 있게 되는것이다.
어떤 파일이 있고 이 파일을 점점 발전 시켜 나간다고 할때 어떠한 앤드포인트마다 그 지점을 그대로 보관을 해서 사진을 찍듯이 스냅샷을 저장해 놓는 것이다.
그리고 이 스냅샷들을 브렌치라는 사진첩 같은 곳에 차곡차곡 보관을 해 놓을 수 있다.
git init
- 어떠한 영역을 git의 작업영역으로 만드는 명령어 이다. 이 작업영역 내에 있는 파일들에 점하나만 찍혀도 git이 감지를 해서 변화를 인지한다.
그럼 이 변경감지를 채크하기 위해서는 ?
git status
git add .
add 다음 .을 넣어 준 이유는 변경된 모든파일을 선택하겠다는 명령어고 add는 변경이 감지된것을 스냅샷을 찍었다는 것이다.
git commit -m "커밋에대한 메시지"
add로 스냅샷을 찍어둔 형상을 영구히 저장하겠다라는 명령어
근데 최초에 커밋을 하기 위해선 사용자 정보 설정을 해줘야한다.
사용자 설정
- git config --global user.name "유저네임"
- git config --global user.email "사용자 이메일"
reset 명령어
- soft
- mixed
- hard
- reset하는 내용을 완전 날리는방법
- reset하는 버전으로 완전히 돌아가고 싶을때 사용
- 위험한 명령어 이긴 하지만 깔끔하게 돌아가 진다. 그래서 쓰는경우가 많다.
- git reset --[위옵션] 해쉬값
git reflog (완전 강력한 reset)
- 한번이라도 커밋했던 내용은 여기에 로그가 다 남아있다.
- 해당 로그의 해쉬값으로 git reset --hard를 이용하다가 날라간 파일조차도 살려낼 수 있다.
최종 커밋 로그 변경
- git commit --amend -m "메시지"
브렌치 정리할때는 git rebase -i HEAD
- vi 에디터
- 입력모드
- 로그변경