Git : 분산 버전 관리 시스템, 형상 관리 도구, 로컬 저장소
Github : git을 사용하는 프로젝트를 지원하는 웹 호스팅 서비스, 웹 사이트, 플랫폼, 원격 클라우드 저장소
로컬 저장소에서 작업을 수행하고 그 결과를 원격 저장소에 저장
원격 저장소 이름 목록 git remote
로컬 저장소와 원격 저장소 연결 git remote add origin 원격주소
원격 저장소 연결 확인 git remote -v
로컬 저장소에서 원격 저장소로 push
git push -u origin master
-u : 로컬 저장소 master 브랜치를 원격 저장소 master 브랜치에 연결 옵션
원격 저장소에서 로컬 저장소로 pull git pull origin master git pull
로컬 저장소에서 만든 브랜치를 원격 저장소에 반영 git push origin 브랜치이름
원격 저장소의 브랜치를 로컬 저장소로 가져오기
git pull
git checkout -b 바꿀원격브랜치이름 원래원격브랜치이름
git checkout -t 원래원격브랜치이름
pull과 fetch와 merge의 차이점
pull == fetch + merge
git fetch git chechout FETCH_HEAD git merge FETCH_HEAD
원격 저장소를 로컬 저장소에 다운로드
git clone 복사한주소
git clone 복사한주소 바꾸고싶은파일명
fork
1. fork시 개인 계정에 레포지토리 생성
2. 원격 주소로 로컬에 추가
git clone 주소
(브랜치 생성) git checkout 브랜치명
git clone -b 브랜치명 원격주소 (특정 브랜치 클론)
git commit -am "커밋내용"
git push origin 브랜치이름
현재 브랜치 목록 git branch
"*" : 현재 브랜치
브랜치 생성 git branch 브랜치 이름
브랜치 이동 git checkout 브랜치 이름
브랜치 생성 및 이동 git checkout -b 브랜치 이름
지정 브랜치에 push git push origin 브랜치 이름
브랜치 병합(master 브랜치에서 수행) git merge 브랜치 이름
브랜치 삭제 git branch -d 브랜치 이름
브랜치 로그 그래프를 확인 git log --oneline --branches --graph
커밋 내역을 확인 git log -n 내역 수 지정
파일 내용에서 검색 git grep "검색 단어"
사용자의 아이디/이메일을 설정
git config user.name 아이디 git config user.email 이메일주소
해당 디렉토리를 깃 저장소로 변경 git init git init 디렉토리이름
해당 디렉토리의 상태를 확인 git status 로그를 확인 git log
스테이징 git add 파일이름.확장자
커밋 git commit -m "커밋내용"
스테이징과 커밋 git commit -am "커밋내용"
커밋/스테이징을 취소 git reset HEAD^
작업 트리에서의 수정 내역 삭제
git restore 파일이름.확장자 git checkout 파일이름.확장자
기본 브런치는 5가지를 이야기한다.
feature > develop > release > hotfix > master
브런치가 존재하며, 머지 순서는 앞에서 뒤로 진행된다.
release 브런치와 hotfix 브런치의 경우, develop 브런치의 오른쪽에 존재하기에 모두 develop 브런치도 머지를 하도록 구성이 되어있다.
새로운 기능을 추가하는 브런치로, origin에는 반영하지 않고, 개발자의 reop애만 존재하도록 한다.
새로운 Production 릴리즈를 위한 브런치이다.
지금까지 한 기능을 묶어 develop 브런치에서 release 브런치를 따내고, develop 브런치에서는 다음번 릴리즈에서 사용할 기능을 추가한다.
release 브런치에서는 버그 픽스에 대한 부분만 커밋하고, 릴리즈가 준비되었다고 생각하면 master로 머지를 진행한다.
master로 머지 후 tag 명령을 이용하여 릴리즈 버전에 대해 명시를 하고, -s 나 -u 옵션을 이용하여 머지한 사람의 정보를 남겨두도록 한다. 그런 뒤 develop 브런치로 머지하여, release 브런치에서 수정된 내용이 develop 브런치에 반영한다.
Production에서 발생한 버그들을 저장하는 브런치.
수정 끝나면, develop, master 브런치에 반영하고, master에는 tag를 추가해준다.
만약 release 브런치가 존재한다면, release 브런치에 hotfix 브런치를 머지하여 릴리즈 될 때 반영이 될 수 있도록 한다.
Git flow가 GitHub에서 사용하기에는 복잡하다 여겨져 사용하지 않고 GitHub Flow로 사용되고 있다.
Github flow는 간단하여 배포, 환경 구성, 릴리즈, 통합에 대한 이슈가 많았다.
그것을 보안하기 위해 GitLab에서 관련 내용들을 추가적으로 덧붙여 설명한 것을 일컫는다.