i 입력 시 INSERT 모드, 입력 및 편집 가능
colon(:) 입력 시 명령어 입력 모드(e.g., 저장 후 종료 wq후 enter)
esc 누르면 다시 밖으로 나옴
git add를 한 번이라도 한 파일은 tracked 상태
git commit -a -m "COMMIT MESSAGE" : stage에 올리지 않고 자동으로(a) commit(tracked 상태의 파일만 커밋에 포함 : 사고 방지)
add의 의미 :
1) commit 대기 상태
2) untracked -> tracked
3) 충돌 해결을 git에게 알림
git add '.' 사용 X
.gitignore : password처럼 절대 commit하면 안 되는 파일이 계속 화면에 표시되는 것을 막음reset은 헤드가 가리키는 branch를 옮기고(직전 버전인 부모 노드 바뀜) checkout은 헤드 자체를 옮김
보통 git reset --hard "COMMIT ID" 사용
이름이 delete가 아닌 이유: git은 버전을 지우지 않음, git reset --hard A 후 추후 B 필요 시 git reset --hard B로 복원 가능
만약 커밋 아이디 (B)를 기록하지 않아 기억이 안 난다면 git reflog 사용
이때 만약 detached 상태라면 reset --hard가 checkout과 똑같은 효과임 즉, reflog 참조 시 그냥 reset --hard 사용하면 됨
git reset --hard HEAD@{i} : 헤드부터 i번째 이전으로 reset
사용자 정의 커맨드(주로 단축키)
`git config --global alias.l "log --oneline --all --grpah"
'git l'이라는 커맨드 입력시 "log --oneline --all --grpah" 역할
같은 파일을 서로 다르게 수정 후 병합할 때
git add "FILE NAME" + git commit : 충돌 해결을 git에게 알림
병합 시 공통의 조상을 찾아 삼자 대면하여(나머지는 상관x) 한 곳에서 수정되었다면 수정된 line을 따라가고, 두 군데에서 수정되었다면 conflict 알림
현재 branch와 다른 branch의 내용 중 선택하거나 수동으로 바꿀 수 있음
git commit --amend -m 'COMMIT MESSAGE" : 마지막 버전의 commit message를 바꿈(하지만 원본은 변화하지 않기 때문에 push 전이면 reset hard로 다시 복귀 가능)git remote add origin "ADDRESS" : 지역 저장소를 원격 저장소와 연결, origin은 다른 이름도 상관 없지만 관례
git remote -v로 확인
최초 push할 때 git push --set-upstream origin master로 지역 저장소의 master branch와 원격 저장소의 mater branch와의 연결을 설정
연결 이후에는 origin/master이라는 branch가 생겨 push한 가장 최근 버전을 가리킴