ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git
    프로그래밍/Git 2024. 8. 12. 23:39

    최초 설정

    $ git config --global user.name 'name'
    $ git config --global user.email 'email'

     

    git을 사용하기 전에 git 변경 내용 저장 시 같이 저장될 이름과 이메일 설정해야 함

     

    작업 영역 생성(선언)

    $ git init

     

    git 작업할 폴더로 이동 후 명령어 실행 => git 작업 가능해짐

     

    변경 내용 인덱스 영역에 저장

    $ git add . # '.' : 해당 경로의 모든 변경 사항

     

    add 뒤에 특정 파일 선택해서 저장하는 것도 가능하지만, 한번 저장할 때 모든 변경사항 저장하는 게 좋음

     

    인덱스 영역에 있는 변경 내용 영구적으로 저장

    $ git commit -m 'commit한 내용'

     

    commit 까지 완료해야 저장된 것

     

    현재 작업 영역 상태 확인

    $ git status

     

    어떤 파일이 수정되었고, 삭제되었는지 아직 저장되지 않은 변경 내역 출력됨

     

    현재까지 commit 된 내역 확인

    $ git log

     

    헤더가 가리키고 있는 내역이 현재 상태, 각 내역 별로 해시값 확인 가능 (git bash 기준 뒤 노란 글씨)

     

    적용됐던 변경 사항 되돌리기

    $ git reset --soft [해시 4자리]
    $ git reset --mixed [해시 4자리]
    $ git reset --hard [해시 4자리]

     

    소프트리셋 : commit 하기 직전, add 까지는 되어있는 상태로 되돌리기

    믹스드리셋 : add 하기 전으로 되돌리되, 추가/변경된 파일은 그대로

    하드리셋 : 추가/변경된 파일도 전부 되돌리기

     

    모든 commit, reset 내역 전부 보기

    $ git reflog

     

    git log는 현재 상태 기준으로 적용된 변경 사항만 보여주지만, git reflog는 git init 이 된 이후 모든 commit/reset 내역 보여줌 => reflog 내역에 나오는 해시값으로도 리셋 가능

    단, 로컬 저장소에서만 확인 가능하고 영구적으로 유지되지는 않음(기본 90일 - git 설정으로 변경 가능)

     

    commit 로그 변경

    $ git commit --amend -m '변경 내용'

     

    "현재 헤더가 가리키고 있는" commit 로그 내용 변경할 때 사용 가능 => 헤더가 가리키지 않는 commit 로그는 변경 불가능

    가장 처음 commit 된 로그 내용도 수정 가능한 건 장점

     

    Git Branch : 독립적인 개발 라인 => 새로운 기능을 추가하거나 버그 수정 시 사용

     

    현재 branch 목록

    $ git branch

     

    branch 생성

    $ git branch '생성할 branch 이름'

     

    branch 생성만 하는 것이기 때문에 새로 생성한 branch에서 작업하려면 이동해서 작업해야 함

     

    branch 이동

    $ git checkout '이동할 branch 이름'

     

    branch 변경점 main에 병합(적용) => sub를 main에 병합한다면, 헤더를 main에 두고 sub 브랜치를 병합해야 함

     

    $ git merge '병합할 branch 이름'

     

    merge 시 기본적으로 적용

    fast-forward merge => sub 브랜치가 갈라져 나온 이후에도 main 브랜치에 변경점이 없을 때 적용됨

     

    특정 상황에만 적용

    3-way merge => sub 브랜치가 갈라져 나온 이후에 main 브랜치에 새로운 변경점이 있을 때 적용됨

    => merge 시 vi 에디터 나옴. ':wq(저장 후 종료)' 명령어 입력하면 됨.

     

    rebase

    $ git rebase -i HEAD~'rebase할 로그 갯수'

     

    위 명령어 사용 시 vi 에디터 나옴 => 선택한 로그들에 대한 작업 선택 가능

    vi 에디터에서 사용 가능한 명령어 => vi 에디터 insert 모드 설정 후 수정, 수정 완료 후 ':wp' 입력

    pick : 해당 commit 그대로 유지

    reword : commit 메시지 수정

    edit : commit 수정

    squash : 이전 커밋과 합침

    fixup : 이전 커밋과 합치되, 커밋 메시지는 무시

    drop : commit 삭제

     

    squash 시 남길 commit 로그 말고 전부 지우고 ':wp' 입력 (commit 메시지 변경도 가능)

    '프로그래밍 > Git' 카테고리의 다른 글

    Github 연결  (0) 2024.08.12
Designed by Tistory.