네이버 AI 부스트캠프 4기 : Day 26

nask·2022년 10월 27일

egoing님 git 특강 2

editor mode

i 입력 시 INSERT 모드, 입력 및 편집 가능

colon(:) 입력 시 명령어 입력 모드(e.g., 저장 후 종료 wq후 enter)

esc 누르면 다시 밖으로 나옴

Tracked & Untracked 상태

  • 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

  • .gitignore : password처럼 절대 commit하면 안 되는 파일이 계속 화면에 표시되는 것을 막음
  • git add .gitignore, commit해도 반영 X
  • .gitignore가 없던 시점으로 checkout하면 다시 화면에 표시되기는 함(관리가 되지 않으므로 없었던 버전에서 삭제 처리도 안 됨)

reset

  • 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

alias

  • 사용자 정의 커맨드(주로 단축키)

  • `git config --global alias.l "log --oneline --all --grpah"

  • 'git l'이라는 커맨드 입력시 "log --oneline --all --grpah" 역할

merge confict

  • 같은 파일을 서로 다르게 수정 후 병합할 때

  • git add "FILE NAME" + git commit : 충돌 해결을 git에게 알림

  • 병합 시 공통의 조상을 찾아 삼자 대면하여(나머지는 상관x) 한 곳에서 수정되었다면 수정된 line을 따라가고, 두 군데에서 수정되었다면 conflict 알림

  • 현재 branch와 다른 branch의 내용 중 선택하거나 수동으로 바꿀 수 있음

commit amend

  • git commit --amend -m 'COMMIT MESSAGE" : 마지막 버전의 commit message를 바꿈(하지만 원본은 변화하지 않기 때문에 push 전이면 reset hard로 다시 복귀 가능)

remote repository

  • git remote add origin "ADDRESS" : 지역 저장소를 원격 저장소와 연결, origin은 다른 이름도 상관 없지만 관례

  • git remote -v로 확인

  • 최초 push할 때 git push --set-upstream origin master로 지역 저장소의 master branch와 원격 저장소의 mater branch와의 연결을 설정

  • 연결 이후에는 origin/master이라는 branch가 생겨 push한 가장 최근 버전을 가리킴

0개의 댓글