본문 바로가기
데이터분석 교육 (제로베이스)

[스터디 노트] 7번째 git (240916), 제로베이스 데이터 분석 스쿨 내용

by davidlds 2024. 9. 16.
반응형

제로베이스 데이터 분석 스쿨 내용에 대한 기록이다.

7번째는 git 강의이다.

 

[git log 문법]

  • git log
    • 저장소의 커밋 이력을 시간순으로 모두 출력
  • git log -2
    • 최근 2개만 출력
  • git log --skip 5
    • 최근 5개 스킵하고 나머지 모두 출력
  • git log -p -1
    • diff를 포함해서 출력
  • git log --oneline
    • 커밋 로그 id와 커밋 메시지만 보기
  • git log --author=(유저 이름 or 유저 이메일)
    • 사용자 정보로 검색
  • git log -S (검색어)
    • 파일의 변경 내용으로 검색
  • git log --grep (검색어)
    • 커밋 메시지 내용으로 검색

[remote repository]

  • git remote add origin (url)
    • remote 저장소 추가
  • git remote set-url origin (url)
    • 주소 수정
  • git remote rename (old_name) (new_name)
    • 이름 수정
  • git remote remove (name)
    • 삭제
  • git remote -v
    • 정보 확인
  • git remote show origin
    • 정보 상세 보기
  • git pull origin main
    • 저장소의 최산 상태를 로컬에 동기화
    • Fetch + Merge 과정이 순차적으로 진행
  • git push origin main
    • 로컬의 작업 내용을 저장소에 업로드

[checkout과 branch]

  • git checkout (커밋 id)
    • 특정 버전(시점)으로 이동
    • 파일의 수정 상태나 생성도 모두 복원
    • git status 하면 HEAD가 해당 버전을 가리킴
  • 브랜치 개념
    • 원래 코드를 복사하여 독립적으로 개발할 때 사용
    • 특정 버전에서 새로운 브랜치를 만들어 작업 후 병합 가능
    • 레포지토리를 처음 만들면 main 브랜치가 기본적으로 생성
  • git branch
    • 로컬 브랜치 목록 보기
    • 아스타로 현재 브랜치 표시
  • git branch -r
    • 리모트 브랜치 목록 보기
  • git branch -a
    • 모든(로컬 + 리모트) 브랜치 목록 보기
  • git branch (브랜치 이름)
    • 브랜치 생성
    • HEAD가 가리키는 현재 상태에서 브랜치가 생성
  • git checkout -b (브랜치 이름)
    • 브랜치 생성과 동시에 이동
  • git push origin (브랜치 이름)
    • 브랜치 배포
  • git branch --delete (브랜치 이름)
    • 로컬 브랜치 삭제
  • git push origin --delete (브랜치 이름)
    • 리모트 브랜치 삭제
  • git checkout (브랜치 이름)
    • 브랜치 간 이동

[merge와 conflict]

  • 머지 개념
    • 현재 위치한 버전에 다른 버전을 병합
    • 헤드의 위치가 어딘지가 제일 중요
    • 브랜치를 병합할 때 사용
    • push pull할때 저절로 발생
  • 머지 예시
    • dev와 main 브랜치가 있을때 둘을 main 브랜치로 병합하고 싶을 때
    • main 브랜치로 이동
    • git merge dev 하기
    • main 브랜치에 새로운 버전 하나가 생기고 머지된 버전이 저장
  • 머지 예시 2
    • dev에서 main 브랜치를 가져와 병합하고 싶을 때
    • dev 브랜치로 이동
    • git merge main 하기
    • dev 브랜치에 새로운 버전 하나가 생기고 머지된 버전이 저장
  • 컨플릭트 개념
    • 오토 머지가 불가능한 상황에서 발생
    • 두 브랜치에서 같은 버전의 같은 부분을 수정한 상황
    • 개발자가 직접 해결해야만 한다.
    • 컨플릭트가 발생한 파일은 특수문자가 생겨 표시
    • 충돌이 발생한 부분을 ======를 기준으로 위 아래 다른걸 표시
  • 컨플릭트 해결 과정
    • 컨플릭트 발생한 파일 수정 (통일)
    • git add (파일 이름)
    • git commit -m (메시지)
    • 가끔 안될 때는 git commit -i -m (메시지)로 강제 커밋
    • 충돌 발생 부분을 파일에서 찾기로 완전히 수정하는게 중요
  • 컨플릭트 꿀팁
    • 보통 push pull 과정에서 발생
    • 평소에 바로 push 하지말고 pull 먼저 하고 작업 하는게 중요
    • push 하다가 실패: pull해서 conflict 에러 수정
    • pull 하다가 실패: conflict 에러 수정

깃허브 링크

 

깃허브 git 공부 부분 링크

 

 

 

반응형