- 워킹 디렉토리 : 내 작업 영역
- 인덱스를 보고 이전의 데이터(test1.txt 파일)를 확인
깃은 원데이터를 수정하면서 이전 데이터를 수정하려면 인덱스가 필요함
변경 감지
내용을 변경
- add : 사진을 찍음
사진을 찍는 영역 : 인덱스
바이너리 라지 : 큰 이진 데이터 오브젝터 = 파일 하나를 저 형태로 저장(압축과 유사)
폴더 : 트리
최초의 브랜치 : main or master
변경된 것(추가된 파일 test2.txt) + 첫번째 트리의 영역이 같이 저장이 됨(첫번째 인덱스를 레퍼런스 참조)
변경된 파일과 이전 인덱스를 포함
- commit > 사진첩에 사진이 만들어짐 : 헤더
헤더 영역 : 헤더가 가리킴
v2가 추가 : 헤더가 가리킴
v3가 추가 : 헤더가 가리킴
리셋 : 다른 곳으로 포인터를 옮기고 싶을 때 헤더를 옮김
마지막 박스를 버리면 됨
버리면서 남아있는 인덱스를 가지고 워킹 디렉토리를 복원함
많이 적고 줄이기전에 commit해야함
줄이기 전으로 돌이키기 위함
commit을 해놓으면 복구가 가능함
깃헙에 올린 것을 리셋하면 형상이 달라져서 안됨
리셋은 깃헙에 올리기전에 로컬에서만 가능
깃헙에서 강제 푸쉬는 가능하지만 위험함
브랜치를 따서 올리는 것은 괜찮음/ 새 브랜치에는 강제 푸쉬해도 되지만 메인 브랜치는 리셋하면 안됨
그래서 항상 브랜치를 만들어서 개발을 함
메인이 아니기에 그 브랜치가 필요 없으면 버려도 됨
git push -f origin 브랜치명 // 강제 푸쉬
public class Hello { public static void main(String[] args) { System.out.println("1"); System.out.println("2"); System.out.println("3"); System.out.println("4"); System.out.println("5"); } } // 코드 완성으로 저장
public class Hello { public static void main(String[] args) { System.out.println("1"); System.out.println("4"); System.out.println("5"); } }// 리팩토링으로 저장
Q : 나가기
3가지 옵션 중 hard : 헤더를 다른 곳으로 돌아갈 때
git reset --hard // main이 아닌 branch에서만 사용할 것!
해쉬값의 4자정도만 사용하면 가능
reset 하기 전으로 돌아가는 방법
git reflog // 모든 행위를 다 들고 있음(reset 포함)
Share article