본문 바로가기
Developer/웹개발 교육 프로그램

[에이블런] TIL(24.05.14): Git

by 청량리 물냉면 2024. 5. 18.
반응형

오늘 배운 내용

Git

git commit: 메모리에 올라와 있는 데이터를 실제 저장소에 write하는 것

  • 형상관리 툴 사용 이유
    • remote repository 때문에 → remote repository가 살아있어야 데이터가 사라지지 않는다.
    • 여러 명이 동시에 코드를 작성하기 위함
    • 히스토리 확인
  • stage: 임시 저장공간, 작업본
    • stage가 필요한 이유
      • 충돌방지
      • 실수 방지
  • repository: 실제 저장소, 최종본
  • branch
    • main: head branch
    • 파일이 커밋될 당시의 버전을 의미
      • 브랜치의 커밋 버전과 파일의 커밋 버전은 서로 다른 것
  • git rm : tracked → untracked로 변경됨, 지우는 명령어
  • git clean : untracked된 파일을 삭제하는 명령어
  • git ignore: 삭제도 적용. 삭제 명령어도 무시됨
  • staged: add 명령어 적용 시 staged 상태가 된다.
  • unstage: work 디렉토리로 이동된 것
  • commit -am: 수정된 파일 add 및 바로 레파지토리에 저장
  • merge: 작업 브랜치에서 작업한 내용을 main 브랜치에 합치시키기
  • 깃 병합 방법
    • fast forward: 다른 라인을 각자 수정했을 때, 충돌 발생 없이 한 번에 merge가 가능함
    • three way merge
      • diff conflict: 두 commit 모두에서 변경사항이 발생한 파일에 대해서는 충돌(conflict)이 발생
  • rebase: 새로운 base를 만드는 작업이다. rebase는 기존의 커밋들을 가져와 새로운 base에 적용하는 과정. 이로써 커밋 히스토리가 깔끔해지고 선형적인 흐름을 유지할 수 있다. 하지만 rebase를 잘못 사용하면 커밋 히스토리를 엉망으로 만들 수 있고, 다른 사람과 협업 시 문제를 일으킬 수 있다. 따라서 rebase를 사용할 때에는 주의가 필요하다.
  • main 브랜치: 배포용 브랜치
  • stash: 긴급한 수정사항 발생, 임시저장공간 (.git 폴더 내의 임시 파일) → 아직 마무리하지 않은 작업을 잠시 스택에 저장할 수 있는 기능
  • 태그: 0.0.0 (출시버전, 기능버전, 특정 기능의 버그 수정) → release note
  • hotfix
    • 마스터에서 딴다
  • 깃허브 주소에서 만든 레파지토리: 리모트 저장소
  • code .: 현재 디렉토리를 vs code로 여는 명령어
  • vs code 명령어
    • ctrl p: 파일 열기
    • ctrl w: 탭 모두 닫기
  • git config -l : 이름과 이메일이 설정되어 있는지 확인하기
  • git config: 이름과 이메일 관련 설정을 할 수 있음. 설정을 보여줌
반응형