[Project Management] Git
README.md
프로젝트 이름 프로젝트 핵심 기능 소개 팀원 소개
.gitignore git으로 관리하지 않는 파일 모음
secret token, 다른 동료와 공유할 필요가 없는 설정 파일 git이 이를 파악하지 않고 push되지 않음
어떤 git flow를 사용할 것인가
Coz Git flow
Git branch
Git 설정
버전 히스토리를 식별할 때 사용할 이름
git config --global user.name "[firstname lastname]"
각 기록과 연결할 이메일 주소
git config --global user.email “[valid-email]”
도움말
모든 명령어
git help -all
특정 command에서 사용할 수 있는 모든 옵션
git [command] -help
세팅 및 초기화 - 레포지토리 초가화, 레포지토리를 클론
Git 저장소 생성
git init
URL을 통해 리모트 레포지토리를 로컬 레포지토리에 복제
git clone [url]
Stage & Commit
수정된 파일 확인
git status
파일 추가(스테이지)
git add [file]
언스테이징
git reset [file]
스테이지되지 않은 변경 사항
git diff
스테이징, 커밋하지 않은 변경 사항
git diff --staged
스테이지된 컨텐츠를 메시지와 함께 커밋
git commit -m “[descriptive message]”
Branch & Merge
작업 내역을 브랜치로 분리, 컨텍스트, 변경, 통합 가능
브랜치 목록. * 표시로 현재 작업중인 브랜치 확인
git branch
현재 커밋에서 새로운 브랜치 생성
git branch [branch-name]
다른 브랜치 전환
git switch [branch-name]
git checkout [branch-name]
새로은 브랜치 생성, 해당 브랜치로 전환
git switch -c [branch-name]
git checkout -b [branch-name]
현재 브랜치에 특정 브랜치의 히스토리 병합
git merge [branch-name]
현재 브랜치의 모든 커밋 히스토리
git log
비교 및 검사
로그 및 변경 사항 검사
브랜치B에 없는 브랜치A의 모든 커밋 히스토리
git log branchB..branchA
해당 파일의 변경 사항이 담긴 모든 커밋 표시(파일 이름 변경도 표시)
git log --follow [file]
브랜치A에 있지만 브랜치B에 없는 것의 변경 내용(diff) 표시(branch간 상태 비교)
git diff branchB...branchA
공유 및 업데이트
특정 레포지토리의 업데이트 사항을 검색, 로컬 레포지토 업데이트 가능
url을 통해 특정 리모트 레포지토리를 별칭으로 추가
git remote add [alias] [url]
별칭으로 추가한 리모트 레포지토리에 있는 모든 브랜치 및 데이터를 로컬
git fetch [alias]
리모트 브랜치를 현재 작업중인 브랜치와 병합하여 최신 상태로
git merge [alias]/[branch]
로컬 브랜치의 커밋을 리모트 브랜치로
git push [alias] [branch]
리모트 레포지토리의 정보를 가져와 자동으로 로컬 브랜치에 병합
git pull
히스토리 수정
브랜치 또는 커밋 수정, 커밋 히스토리 삭제
특정 브랜치의 분기 이후 커밋을 현재 작업중인 브랜치
git rebase [branch]
특정 커밋 전으로 돌아가며 스테이지된 변경 사항 모두 삭제
git reset --hard [commitish]
임시 저장
수정하거나 스테이지된 변경사항을 스택에 임시 저장하고 현재 작업 내역에서 삭제
git stash
스택에 임시 저장된 변경사항의 목록
git stash list
스택에 임시 저장된 변경사항을 다시 현재 작업 내역에 적용
git stash apply
스택에 임시 저장된 변경사항을 다시 현재 작업 내역에 적용하고 스택에서 삭제
git stash pop
스택에 임시 저장된 변경사항 삭제
git stash drop
댓글남기기