ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git 101
    개발 관련/협업 2020. 9. 23. 22:12

     

    Git이란 무엇일까?
    오픈 소스 분산형 버전 관리 시스템(Distributed Version Control System)
    소스코드를 효율적이게 관리할 수 있게 해주는 형상 관리 도구

     

     

     

    기본 Git 명령어

    init: 아직 버전 관리를 하지 않은 로컬 디렉토리에 git repository 적용

    git init

     

    remote: 현재 프로젝트에 등록된 리모트 repository 확인/추가/구체적 정보 확인/삭제

    git remote    → -v: 단축이름과 URL 함께 표시 
    git remote add <단축이름> <url>
    git remote show <리모트 repository 이름>
    git remote remove <리모트 repository 이름>

     

    clone: Git repository를 로컬 시스템에 복제

    git clone [http 또는 ssh]

     

    fork: 다른 repository의 어떤 부분을 수정/추가하기 위해 내 repository로 불러오기 (+히스토리)

     

    add 또는 stage: 변경사항을 git 히스토리에 추가하기위해 준비

    git add .       → 존재하는 모든 파일 추가 
    git add [파일 이름.확장자]

    git stage [파일 이름.확장자]

     

    commit: 새로운 또는 변경된 사항을 repository의 git 히스토리에 추가

    git commit
    git commit -m '메시지 내용'
    git commit -am '메시지 내용'      →  stage + commit
    git commit --amend      →  이전 commit에 변경사항 추가

     

    stash: 변경 사항 임시 저장 (commit하기에 충분치 않을 때)

    git stash
    git stash list   →  stash 목록 확인

     

    fetch: repository의 최신 버전을 로컬 시스템으로 오기 (작업상태 업데이트 X - pull보다 더 안전!, merge X)

    git fetch

     

    pull: 다른 사람들이 repository에 추가한 새로운 변경 사항을 로컬 repository로 가져옴 (+ merge O)

    git pull
    git pull --all      →  모든 변경사항 가져옴

     

    push: 로컬 시스템의 변경사항을 remote repository로 보냄

    git push [remote repository 이름] [push할 브랜치 이름]
    git push -f             → 강제로 remote repo에 push
    git push -u [remote repository 이름] [push할 브랜치 이름]        → tracking 브랜치 셋업 (첫 push)
    tracking 브랜치 =
    remote 브랜치와 직접 연결되는 local 브랜치

    <TAG PUSH>
    git push [remote repository 이름] [tag 이름]              → 해당 태그를 remote repo에 push
    git push --tags             → 모든 태그를 remote repo에 push
    git push [remote repository 이름] --delete [tag 이름]                remote repo에서 해당 태그 삭제

    branch: 새로운 브랜치 리스트/생성/이름 변경/삭제

    git branch
    git branch [브랜치 이름]
    git branch -m [이전 브랜치 이름] [이후 브랜치 이름]
    git branch -d [브랜치 이름]

     

    checkout: 원하는 브랜치로 스위치

    git checkout [브랜치 이름]

     

    merge: 현재 브랜치에 다른 브랜치의 변경사항을 병합

    git merge [병합할 브랜치 이름]        → -ff 기본 설정 (커밋없이 fast-forward)
    git merge --no-ff [병합할 브랜치 이름] -m '[커밋 메시지 내용]'         → 병합 + 커밋

     

    rebase: 현재 브랜치의 커밋을 base로 두고, 다른 브랜치의 변경사항을 병합

    git rebase [다른 브랜치 이름]

     

    tag: 현재 브랜치의 가장 최근 커밋에 tag 붙이기

    git tag             → 모든 tag 리스트
    git tag [태그 내용]        → ex. 릴리스 브랜치 커밋에 버전(v1.00) 태그 추가
    git tag -d [태그 이름]          → 해당 태그 삭제

    status: 로컬 repository의 상태 확인

    git status

     

    log: 프로젝트 커밋된 히스토리 리스트, 필터, 검색

    git log    → 커밋 정보(커밋 해시, 작성자, 날짜, 커밋 메시지) 포함 표시
    git log --oneline    → 커밋 하나씩 한 줄에 표시
    git log --all --oneline --graph    → 모든 커밋 하나씩 한 줄에 표시

     

    reset 또는 checkout: add/stage가 되지 않은 변경 사항 실행 취소, 커밋 취소

    git reset --hard      → 마지막 커밋 전으로, repository 전체를 복구(revert)
    git checkout [변경된 파일 이름]
    git reset --soft [커밋 해시]    → 커밋 취소

     

    revert: 커밋에서 편집한 내용을 실행 취소, 다시 커밋 (reset보다 안전!)

    git revert [커밋 해시]

     

     

     

    '개발 관련 > 협업' 카테고리의 다른 글

    GIT Fork Vs. Clone  (0) 2021.03.01
    Repository 셋업  (0) 2020.09.25
    Branch Workflow  (0) 2020.09.25
    Gitflow 워크플로  (0) 2020.09.24
Designed by Tistory.