[zero-base/] DS Part 6. Git - 44일차 스터디 노트

손윤재·2024년 2월 2일

제로베이스 DS 22기

목록 보기
45/55
post-thumbnail

Git Log

Branch별 변경 이력을 볼 수 있다.

  • git log : 현재 진행 중인 Branch의 Log 출력한다.

Git Diff

git config --global -e

  • -e 는global의 editor옵션을 수정하겠다는 의미이다.

  • Git Diff 설정 추가


❕ Local Branch 간 비교

git diff <branch1> <branch2>

git difftool <branch1> <branch2>


❕ Commit 간 비교

git diff <commit_hash1> <commit_hash2>

git difftool <commit_hash1> <commit_hash2>


❕ Local과 Remote 간 비교

git diff(tool) <local_branch> origin/<remote_branch>

  • 수정 내용을 commit하기 전에 Remote Repository에 push한 후 commit해서 비교

Git Merge

  • 실습 환경 만들기

    1. new Rmote Repository(merge_project) 생성
    2. Local로 Git Clone
    3. Local Repository(merge_project) 내에 test.txt([w] my name is noma.) 파일 생성
    4. Add & Commit(”create”)
    5. Branch ‘dev’ 생성 및 이동
    6. Branch ‘dev’에서 test.txt([a] are you?) 파일 수정
    7. Branch ‘dev’에서 Commit(”modify_1”)
  • Git Configuration 파일을 열어서 Git Merge 설정 추가
    git config --global -e

💡 현재 위치한 Branch에서 다른 Branch를 병합

  • Merge는 주종 관계가 있어서 “어디에” “무엇을” 병합하는지 정확해야 한다.

Git Conflict

  • 두 Branch에서 동일한 파일의 같은 부분을 수정한 후 Branch를 Merge하면 병합 과정에서 충돌이 날 수 있다.
    혹은 Push, Pull 하는 과정에서도 Merge가 이루어지므로 충돌이 일어날 수 있다.
  1. Local Repository 생성
    • 위치 : git_ws 폴더 하위
    • 이름 : merge_project

  2. test 파일 생성
    • Default Branch 이름 확인 : main
    main 에서 test.txt 생성 후 commit : "my name is noma."

  3. dev Branch 생성
    main 에서 dev Branch 생성 후 이동
    dev 에서 test.txt 수정 후 commit : "are you??" 추가

  4. Merge 하기
    main 에서 dev Merge

  5. dev2 Branch 생성
    main 에서 test.txt 수정 후 commit : "hello, noma."
    main 에서 dev2 Branch 생성 (이동 X)

  6. test 파일 수정
    main 에서 test.txt 수정 후 commit : "hello, zero."
    main 에서 dev2 Branch로 이동
    dev2 에서 test.txt 수정 후 commit : "hello, base."

  7. Merge -> Conflict
    main 에서 dev2 Merge : Conflict 발생 확인

  8. Conflict 해결
    • Conflict 해결 : 충돌이 난 부분을 수정 후 저장


Git Tag

특정 버전(git commit)에 Tag를 달아 놓을 필요가 있을 때 사용한다.
ex> 버전 릴리즈(Git 2.24.0)

❕ Git Tag 붙이기

  • 현재 버전인 commit_3에 Tag v0.3을 붙인다.
    git tag v0.3
  • git log에 나타나는 commit hash를 사용해 버전을 지정해 준다.
  • 특정 버전인 commit_2에 Tag v0.2를 붙인다.
    git tag <tag_name> <commit_hash>

❕ Git Tag Push

  • Local에서 붙인 Tag를 Remote Repository에도 붙여준다.
    git push origin <tag_name>

❕ Git Tag 목록 보기

git tag


❕ Git Tag 상세 정보

git show <tag_name>


❕ Git Tag 삭제

  • 로컬 저장소
    git tag --delete <tag_name>

  • 원격 저장소
    git push --delete origin <tag_name>

profile
ISTP(정신승리), To Be Data Scientist

0개의 댓글