Git - 기본 명령어
[ 저장소 ]
git remote
- git 원격저장소[Repository] 목록 확인
git remote -v
- git 원격저장소 이름과 url 목록 확인
git remote add 저장소이름 저장소URL
- 저장소URL의 원격저장소를 저장소이름으로 추가
git remote rm 저장소이름
- 저장소이름의 원격저장소 제거
[ 확인 ]
git log
- commit 로그 확인
git status
- 파일 상태 확인(staged, untracked, ..)
git diff
- commit된 파일상태와 현재 수정중인 상태 비교
git diff --staged
- commit된 파일상태와 add된 파일 상태 비교
[ 변경사항 취소 ]
git checkout -- src/hello.c
- 특정 파일을 마지막 커밋 상태로 되돌림
git reset --hard
- 모든 파일을 되돌림
[ 업로드 ]
git add 파일명1 파일명2
- 해당 파일을 [Staging Area]로 이동(tracking)
git commit -m "커밋메세지"
- editor 호출없이 바로 커밋
git push
- 원격저장소[Repository]에 local repository[Working Directory]의 commit 내용을 올림
[ 다운로드 ]
git pull
- 원격저장소[Repository]의 내용을 가져와서(fetch) local repository[Working Directory]에 합침(merge)
[ 브런치 ]
git branch <브랜치 이름>
- 브런치생성
git checkout <브랜치 이름>
- 사용할 브런치로 변경
git branch -r (-a는 로컬원격전부 확인)
- 원격브런치 목록확인
git push origin <브랜치 이름>
- 로컬브런치를 원격브런치로 추가
git branch --set-upstream-to origin/<브랜치 이름>
- 로컬브런치와 원격브런치 연동
git branch -d <브랜치 이름>
- 브런치 삭제
git push origin --delete <브랜치 이름>
- 원격저장소 브런치 삭제
[ 브런치 병합 ]
git checkout master
- master사용
git branch -a
- checkout 바뀌었는지 확인
git merge <브런치 이름>
- 병합
git push
- 원격저장소에 병합할 경우
[ 충돌 ]
git config pull.rebase false
- 로컬 브랜치와 원격 브랜치를 자동으로 git merge하여 하나의 커밋으로 병합
- 수동으로 해결 후 git merge --continue 실행
git config pull.rebase true
- 로컬 커밋을 최신 커밋 위로 다시 적용
- 충돌을 해결한 후 리베이스를 계속 진행 git rebase --continue
[ 초기설정 ]
git init
git add .
git commit -m 'init'
github에서 프로젝트 생성
git remote add origin https://github.name.com/42f-platfrom/00000.git
git push --set-upstream origin master
[ git reset ]
git reset --hard COMMIT_ID
- 특정 커밋(COMMIT_ID)으로 브랜치를 이동하며, 모든 변경 사항(Tracked + Untracked) 삭제
- 완전히 되돌릴 때만 사용 (주의 필요)
git push -f origin master
- 원격 저장소 롤백
git reset --soft COMMIT_ID
- 특정 커밋(COMMIT_ID)으로 브랜치를 이동하지만, 현재 변경 사항은 유지
- Staging Area(스테이징 영역, git add)는 유지됨
[ git cherry pick ]
git checkout master
git cherry-pick <commit-id>
- develop 브랜치의 특정 커밋을 master 브랜치에 반영
- 전체 브랜치를 병합하지 않고, 특정 커밋만 따로 적용
https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html