-
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