버전관리하는법을 알아보는 시간.
우선
GUI 환경이 아닌 Command Line 환경에서 명령어로 Git을 제어해보자.
git original 다운받고 시작

- 설치하고 cmd에 git 처서 다운됐는지 확인
버전관리 시작
git init
- 깃 디렉토리로 초기화(깃과 연동)

버전 만들기
파일이 변경되었을때 변경사항들을 저장할거임.
Working Tree : 버전으로 만들어지기 전단계 친구 (수정한 파일들)
Staging Area : Working Tree 에서 버전으로 만들 친구들을 가져와 놓는 곳 (버전을 만들려하는 파일들)
Repository : Working Tree에 친구들을 버전화 시켜 올려놓는 곳.(만들어진 버전)
파일 한번 만들어 보자(실습)
- nano hello1.txt >> 아무거나 타이핑 >> 나가기
- 만들어졌나 확인

git status
git의 상태를 확인하는 명령어

- not commits yet : 커밋 아직 안됨 : 버전처리 된게 없음
- 추적되지 않은 파일은 hello1.txt
git add
Stage Area 에 파일을 올리는 명령어

- status를 입력하면 버전이 될 파일이 표시된다.
git commit
- (버전을) 제출함
git commit -m "버전명"
- status로 확인하면 현재 상태 clean하다 나옴.
git log
- 로그(역사) 확인

했던거 연습 해보쟈

컷!
여러개의 파일을 버전으로 만들기
- hello1.txt 수정, hello2.txt 생성
- git status

- untracked file : 버전 관리하지않는 친구
- hello1 은 이미 예전에 add 했던 친구라 버전관리가 되고 있음.
- git add로 두개 파일을 Stage에 올려보겠음

git commit -m "버전요약"
git log
- 어떤파일이 올라갔는지 확인하는 명령어는 검색해서 알아보자
git log --stat
- 오 ..!! 짱신기
버전간 차이점 비교
- hello1.txt 를 좀 특이하게 값을 변경해보자
git diff
difference 의 약자. 차이점 비교 명령어

- 빨간색 친구가 사라진 친구. 초록색칭구가 거기에 새로 생성된 친구.
- 이렇게 차이점이 보인다...!!!
- 코드를 변경하고
git diff 로 이전버전과의 차이점을 검토할 수 있음.
git log -p
- 로그로 버전별 차이점을 보여준다.

checkout 과 시간여행
- 버전관리는 시간탐색이 강력함.

- HEAD가 master면 최신 버전이라는 뜻
git checkout
- commit : dasdfadf 이렇게 보이는 commit ID를 가져와서
git checkout commitID 를 치면 됨.
- 그럼 그 커밋 아이디가 가리키는 버전시점으로 돌아가게 됨.
- HEAD가 그 ID로 가는것임 ( 이전 코드는 아직 삭제가 안됨. 걱정 ㄴㄴ )
git checkout master : 최신상태로 다시 돌아감.
보충수업
add 에서 파일을 직접 지정해도 되지만
git add . 을 하면 현재 폴더 자체를 지정할 수 있음.
- 폴더자체를 지정해도됨
git commit -am : add commit을 한번에 할 수 있음.
- 주의점 :
- 버전 추적이 한번이라도 된 파일만 가능함.
git commit -m : 직접 메시지를 쓰고싶을 때 사용하는 명령어
git commit : 여러줄로 메시지를 쓰고 싶을때 (default)
버전삭제
버전을 삭제하는 법을 알아보쟝
git reset --hard 해당버전코드
- 이 버전 으로 리셋 하겠다 라는 뜻으로 생각하고 사용하면 됨.
- --hard가 머냐? : 그냥 그 이후 버전 로그정보 까지 전부 삭제 하는 것
되돌리기
revert : reset 아님. 되돌리기임 그냥.
- 이전버전으로 되돌아 가고 싶을때
- 그럼 그 앞버전을 되돌려야겠죠?
git revert 해당 버전코드
- 이버전을 되돌리기 할래~ 라는 뜻으로 생각하면됨.

- 저렇게 에디터 하나가 뜨는데 저기 위에 버전을 왜 revert하는지 쓰면 됨.
![업로드중..]()
- 저렇게 로그에도 남음
- Message3가 이런 이유로 Revert 됐어~ 라고 나온거
- 그래서 현재버전은 Message2 임.
나 근데.. 옛날 옛적버전으로 가고싶음
- 그럼 지금버전부터 ~ 옛날 옛적 버전 앞에 버전까지 차례로 revert 해주면 된다!!(꼭 차례로 다 revert 해줘야함(충돌나서))
컽!