#프로젝트의 변경사항들을 타임캡슐(commit)에 담기
-변경사항 확인 : git status

-No commits 은 커밋된 파일이 없다는 뜻(commit은 버전이라고 생각하면 된다)
-여기에서 Untracted files 란 추적하지 않은 파일로 Git의 관리에 들어간 적 없는 파일이다.
-파일 하나 담기 : git add 파일이름.확장자
-파일을 하나씩 넣는 기능이 있는 이유 : 파일마다 다른 버전에 commit하기 위함(일반적으로 많이 쓰지 않음)
-git status로 확인하면 Changes to be committed에 new file로 담긴 것을 확인할 수 있음

-모든 파일 담기 : git add .

#타임캡슐 묻기
-git commit : Vi입력 모드로 진입

| 작업 | Vi명령어 | 상세 |
| 입력 시작 | i | 명령어 입력 모드에서 텍스트 입력 모드로 전환 |
| 입력 종료 | ESC | 텍스트 입력 모드에서 명령어 입력 모드로 전환 |
| 저장 없이 종료 | :q | |
| 저장 없이 강제 종료 | :q! | 입력한 것이 있을 때 사용 |
| 저장하고 종료 | :wq | 입력한 것이 있을 때 사용 |
| 위로 스크롤 | k | git log등에서 내역이 길 때 사용 |
| 아래로 스크롤 | j | git log등에서 내역이 길 때 사용 |
-commit의 Vi 입력모드에서 커밋 버전의 이름을 FIRST COMMIT으로 하고 :wq(저장하고 종료)를 입력하면 Vi입력모드에서 벗어나 기존 창에서 커밋이 된 것을 확인할 수 있다.

-위와 같은 작업을 간편하게 하면 git commit -m "FIRST COMMIT"으로 할 수 있다.
-커밋의 결과는 git log와 소스트리에서 확인할 수 있다.
-커밋 후 파일을 수정하고 삭제한 후에 git status로 확인하면 아래와 같이 커밋된 파일 중 삭제, 수정된 것과 Untracked files에 새로생성된 파일을 확인할 수 있다.

-변경사항을 디테일하게 보고싶을 경우 git diff로 확인할 수 있다.(j:아래로 스크롤, k:위로 스크롤, :q 닫기)
-git add . 로 추가 후 status로 확인해도 새로 생긴 파일, 삭제, 수정 등의 변화를 확인할 수 있다.

-git commit -m "Replace Lions with Leopards" 로 Replace Lion with Leopards라는 이름의 버전으로 커밋해줄 수 있고
소스트리에서 실시간으로 확인 가능하다
-새로 추가된(untracted) 파일이 없을 때는 git commit -am "메세지" 로 커밋 가능하다.

#과거로 돌아가는 두 가지 방법(Reset / Revert)
-Reset : 시간을 과거로 돌린다. 과거작업으로 돌아가고 이후 행적은 기록에서 지운다
-Revert : 과거 작업의 변화를 거꾸로 수행하는 커밋을 만들고 과거 작업과 같은 상태로 돌아간다.
-이전 기록들을 유지한채로 어떠한 작업만 취소하고 싶을 때 Revert를 사용한다
※reset 사용해서 과거로 돌아가기
-git log에서 과거로 돌아갈 시점의 커밋의 해시를 얻을 수 있다.

-git reset --hard 돌아갈 커밋 해시 로 reset 시킬 수 있다
※reset 하기 전 시점으로 복원하기
-.git파일을 다른 폴더에 백업해두고 reset 작업한 폴더의 .git을 지우고 백업해둔 폴더의 .git폴더를 가져온다.
-git reset --hard 뒤에 아무것도 붙이지 않으면 커밋하지 않은 변경사항 이전에 마지막으로 커밋 했던 상태로 되돌아간다.
※revert로 과거의 커밋 되돌리기
-git revert 과거로 돌아갈 커밋 해시 로 돌릴 수 있다.

-git commit 했을 때와 같은 상태이지만 commit의 이름이 이미 입력되있다(이 것을 revert한다)
-:wq로 저장하고 창을 나오면 소스코드에서 해당 커밋이 revert된 것을 확인할 수 있다.

-Add George to Tigers가 반대로 실행된 것을 확인 할 수 있다.


-Revert를 사용하면 내역을 삭제하지 않고 무엇을 취소했었는지 히스토리를 자세히 확인 할 수 있다.
-오래된 작업을 Revert하면 변경내역은 사라지지만 이 커밋에서 작업한 내역과 최근에 작업한 내역의 충돌이 일어난다.
그렇게 되면 커맨드 창에서 이 문제를 해결할 방법들을 hint로 제시해주는데 이 중 골라서 방법을 해결하면 된다.
후에 git revert --continue를 입력하면 Revert가 수행된다.

※reset으로 revert 전으로 돌아가기
-git reset --hard 마지막 작업했던 해시 를 입력하면 원래 상태로 돌아올 수 있다.
※커밋해버리지 않고 revert 하기
-git revert --no-commit 되돌릴 커밋 해시
#SourceTree로 진행해보기
-윈도우에서는 소스코드의 해당창에서 커밋 이전에 변경사항들을 +버튼을 눌러서 올리거나 모두 스테이지에 올리기로 git add "해당파일"의 기능과 git add . 의 기능을 수행할 수 있다.

-상단의 커밋 탭을 누른 후 아래 창이나오면 맨 아래 박스에 커밋 이름을 적어주고 커밋을 누름으로써 커밋을 실행할 수 있다.


※소스코드로 revert 하기
-해당 커밋 우클릭 후 커밋 되돌리기를 클릭하면 아래와 같은 창이나오고 revert 할 수 있다.


※소스코드로 reset 하기
-돌아가고자 하는 커밋에 우클릭 후 이 커밋까지 현재 브랜치를 초기화
'Git & GitHub' 카테고리의 다른 글
| [Git] GitHub / push & pull (0) | 2022.04.06 |
|---|---|
| [Git] Branch (0) | 2022.04.05 |
| [Git] Git 시작하기 (0) | 2022.04.03 |
댓글