
add,commit을 이용하여 변경사항 관리
git은 프로젝트의 변경사항들을 파일 즉 하나의 공간에 넣어 전송한다.
이 때 하나 혹은 모든파일을 담아 전송할 수 있다.
변경사항을 확인해보면 다음과 같다.

현재 3개의 파일이 Untracked files로 나타난다.
Untracked files는 추적하지 않는(Untracked) 즉 파일로 git의 관리에 들어간 적 없는 파일을 의미한다.
다음 파일들을 전송하기 위해 버전에 담는다. 이 때 하나 혹은 모든 파일을 담을 수 있다.
git add 파일명
git add .
파일들을 전부 버전에 담으면 전송할(commit) 준비가 완료된다.

commit은 버전에 담은 파일을 전송한다.
이 때 커밋 메세지 또한 함께 전송하여 각각의 commit을 구분할 수 있다.
git commit -m "FIRST COMMIT"
위에서 버전에 담은 파일들을 commit하면 다음과 같다.

만약 새로 추가된(untracked) 파일이 없을 때는 add와 commit을 한번에 수행할 수 있다.
git commit -am "(메시지)"
commit 이 후 git log를 사용하면 최신순으로 commit history를 확인할 수 있다.
git log

Reset,Revert를 이용하여 과거의 프로젝트로 이동
git에서는 Reset, Revert를 이용하여 과거의 시점으로 이동한다.
reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 지운다.
revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행한다.

git log, 소스트리(GUI)를 사용해 현재 commit상태를 확인해보면 다음과 같다.


총 5가지의 commit이 발생하였고 각각의 commit은 고유한 커밋 해시를 가지고 있다.
이 때 reset을 사용하여 1단계 전인 Add team Cheetas단계로 이동해보겠다.
reset은 다음과 같은 방법으로 사용한다.
git reset --hard (돌아갈 커밋 해시)

위의 코드를 입력하고 소스트리(GUI)를 확인해보면 바로 전 commit단계인 Add team Cheetas단계로 이동한 것을 확인할 수 있다.

또한 reset뒤에 커밋 해시가 없으면 마지막 커밋을 가리키기 때문에 reset을 하기 전 시점으로 복원할수도 있다.
git reset --hard
reset은 내가 돌아갈 지점의 커밋 해쉬를 입력했지만 revert는 취소할 커밋 해쉬를 입력한다.
git revert (되돌릴 커밋 해시)
현재 commit상태를 확인해보면 다음과 같다.

여기서 revert를 사용해 2단계 전 Add George to Tigers의 커밋 해쉬를 입력한다.
git revert 9370f7292ca61d53cc40b95cb240ad1898c5bd47
실행결과를 확인해보면 revert는 reset과 다른 2가지 차이점이 발생한다.
Add George to Tigers의 커밋의 단계를 반대로 수행하는 새로운 commit이 생성된것을 확인할 수 있다.
reset은 되돌아가는 시점 이후의 commit을 모두 삭제하지만 revert는 삭제하지 않는다.

다음 명령어를 사용하면 revert를 한뒤 commit을 사용자가 수동적으로 할 수 있다.
git revert --no-commit (되돌릴 커밋 해시)
또한 revert전 단계 시점 으로 되돌아가고 싶다면 앞서 배운 reset을 활용할 수 있다.
git reset --hard