git init : 현재 디렉터리 깃을 사용하도록 초기화
git status : 현재 디렉터리 하위에 존재하는 파일들의 상태를 확인
상태 종류: (untracked, unmodified, modified, staged)
git add : 깃을 스테이지 상태로 변경(커밋하기 위해 추가된 상태)
git commit -m "message" : 스테이지된 파일들 커밋 ("message" 에 커밋메세지 작성)
git remote add origin <원격 서버 주소> : origin 이라는 명칭으로(관습상 origin 사용) 원격 서버 주소를 리모트 주소로 설정
git push origin <브랜치명> : origin(remote저장소) 에 로컬에 commit된 내역들 push
브랜치
git branch : 브랜치 목록 확인
git branch <브랜치명> : 브랜치 생성
git checkout <브랜치명> : 브랜치 변경
git checkout -b <브랜치명> : 브랜치를 만듦과 동시에 체크아웃
git merge <머지 할 브랜치명> : 현재 head가 위치한(체크아웃 되어있는) 브랜치로 <머지할 브랜치명> 을 합친다.
git branch -d <브랜치명> : 브랜치를 삭제한다.
git branch -a : 로컬과 리모트의 모든 브랜치를 조회
git branch -r : 리모트의 브랜치만 조회
git checkout -t origin/<브랜치명> : 리모트의 해당 브랜치를 로컬에 동일한 명칭으로 가지고 옴
git checkout -b <생성할브랜치명> origin/<브랜치명> : 리모트의 해당 브랜치를 로컬에 지정한 브랜치명으로 가지고 옴
머지할때 충돌시 처리
- git merge <브랜치명> -> 충돌발생 -> 충돌 파일을 확인하면 <<<<<HEAD =======와 같은 충돌 메세지가 추가되어 있음
- 충돌된 메세지를 확인하여 적절하게 변경 한다.
- git add <파일명> -> git commit -m "message" 로 다시 커밋한다.
머지할때 충돌시 rebase를 이용하여 처리
- git checkout <base를 갱신할 브랜치> ex) git checkout mybranch
- git rebase <base가 될 브랜치> ex) git rebase master
- 충돌 발생시 충돌한 파일 내용 변경
- git reabse --continue : 리베이스를 계속해서 진행한다.
- mybranch 에서 미처 pull 받지 못한 master 내용들이 이전 커밋내역들로 들어가며 베이스가 변경된다.
- git add <충돌한 파일>
- git checkout master
- git merge mybranch
깃 마지막 커밋 메세지 변경
git commit --amend "새로운 메세지"
리모트
git remote update : remote 의 정보들을 로컬로 fetch