Git 명령어 정리
Git이란
- 분산 버전 관리 시스템으로서, 소스 코드의 변경사항을 추적하는 데 사용
- 로컬 시스템과 원격 시스템을 두어, 로컬에서 작업 후 원격공간 동기화
- 주요 명령어에는 add, commit, push, pull, merge, branch, checkout 등
- 브랜치(branch) 기능을 통해 여러 개발자가 동시에 개발하면서도 충돌 없이 작업
Staging Area
- git add .
- 이 단계에서는 local repository로 파일을 넣기 위한 대상 목록 관리
- stage, 인덱스는 Staging을 가리키는 같은 용어
- 로컬저장소로 넣으면, 그 때부터 이력이 생성
로컬 저장소(local repo)
- git commit -m "남길메시지"
- staging area에서 commit을 하고 나면 새로운 버전이 생성
Git 명령어
git status
- 현재 작업 디렉토리와 staging area의 상태를 보여주는 명령어
git add .
- staging area로 업로드
- git status로 staging 상태확인
git commit -m "first commit"
- local repository로 업로드 및 커밋이력 생성
- git commit -m "제목파트" -m"내용파트"
- git log로 커밋이력 확인
- git commit 만 하게 되면 메시지 입력모드로 전환. 첫줄에 title, 두번째 줄부터 contents
git commit -am "커밋메시지"
- add와 commit을 동시에
git push origin main
- commit 했던 파일 origin으로 psuh
git branch
- 최초로 만들어졌던 branch 확인(main)
git log
- git commit log 확인
Git 프로젝트 생성 및 수정절차
신규 프로젝트 생성시
- 방법1
- git clone repository 주소
- 해당 폴더로 이동하여 개발시작
- 방법2
- 로컬 컴퓨터에서부터 이미 개발된 프로젝트가 존재시
- 로컬 컴퓨터에서 github로 프로젝트 올리는
- git init
- .git파일(commit 이력, 원격지(github) 주소, branch 정보) 생성
- .git 폴더가 위치한 곳에서 git config —list를 통해 컨피그 정보 조회
- git remote add origin [repository 주소]
- origin이란, 깃허브 저장소 주소를 의미(즉, 원격저장소를 의미)
- git remote set-url origin [repository 주소]
- url변경 후 main에 push하면 main의 commit 이력과 함께 업로드
- git remote remove origin
git fetch
- git fetch
- origin의 데이터를 로컬로 가져오되 병합은 하지 않는것.
- local repository까지 커밋이력은 가져오되, staging과 working directory에는 반영 X
- FETCH_HEAD는 git fetch 명령어를 마지막으로 실행했을 때 원격 저장소에서 가져온 브랜치의 최신 커밋을 가리키는 참조
- git fetch origin main
- 현재 checkout 돼 있는 main과 origin main과의 차이가 있을경우 origin 참조데이터 fetch_head라는 곳에 생성
- 즉, 차이점을 참고하여 일단 merge 후에 파일수정하고 다시 push
- git pull작업의 단계(fetch와 merge를 포함)
- git fetch 먼저 수행
- git merge 수행
- 만약 merge가 실패되면 fetch만 완료
git stash
- git stash는 작업 중인 변경사항을 임시로 저장하고 나중에 다시 적용할 수 있게 해주는 명령어
- git stash list
- 작업저장목록
- git stash show 인덱스
- 복사본 내용 조회
- git stash show -p 인덱스 : 상세조
- git stash pop
- 작업목록에서 제거하면서 저장사항 적용
- git stash apply
- 작업목록에서 놔둔채 저장사항 적용
- git stash apply 0
- 가장 최근에 저장한 stash의 적용
- git stash clear
- 전체 stash 목록 클리어
git tag
- main 브랜치에서 tag를 붙여 버전을 명시하고, release를 하고자 할때 아래와 같이 tag를 붙인뒤 push
- release에는 source코드가 압축 파일로 생성
- 관련명령어
- git tag 버전명
- git push origin 버전명
- add, commit, push와는 별도로 진행
feature branch 작업
- 실제 현업에선 branch1, branch2, dev, main등 여러 브랜치로 관리
- 브랜치란 버전과는 다르게 개발의 경로를 의미
- 일반적으로 production 관련 브랜치는 main, 개발용 브랜치는 dev
- 나머지는 task별로 기능별로 개별적으로 만들어 사용 → feature브랜치라 칭함
- 각각의 local feature branch에서 작업 후 origin/feature로 push
- Pull Request를 통해 dev까지 merge
- dev에서 main으로 최종 merge
- 주요 명령어
- git fetch origin
- 모든 브랜치 정보 fetch
- git branch
- 현재 저장소에 있는 모든 브랜치 목록
- git branch 특정브랜치명
- 특정브랜치명으로 새로운 브랜치를 생성하는 명령어
- 기존에 checkout 되어 있던 브랜치 기준으로 신규 브랜치 생성
- git checkout -t 브랜치명
- 현재 브랜치에서 다른 브랜치인 브랜치명으로 전환하는 명령어
- git checkout -b 브랜치명
- 새 브랜치를 생성하고 해당브랜치로 전환
- git fetch origin
- branch 삭제
- git branch -D 브랜치명 : 로컬 브랜치 삭제
- git push origin —delete 브랜치명 : 리모트브랜치도 삭제