Git/Github 에서 자주 쓰이는 명령어 모음 입니다. Ctrl+F 를 이용하여 원하는 명령어를 찾아보세요.
(2022.08.03 updated)
git init : 인덱스역역 생성
git add . : 변경감지된 모든 영역을 인덱스영역에 올림
git commit -m " " : 40자 해쉬값으로 변경 후 메세지와 함께 헤더영역에 올림
git status : 변경 감지된 파일이나 커밋하지않은 파일을 보여줌
git log : 헤더 역역의 버전을 보여줌
git reset (--옵션) (이전로그해쉬) : log를 잘못 남겼을 때 복구
1) hard : 헤더의 파일, 인덱스의 파일, 실제 파일 삭제
2) mixed : 헤더의 파일, 인덱스의 파일 삭제
3) soft : 헤더의 파일 삭제 (e.g. 커밋메시지 변경 시)
git merge (자식브랜치) : 부모브랜치에서 자식브랜치 merge
git reflog : 한번이라도 커밋한 모든 로그 보여줌
git commit --amend -m " " : 최종로그 메세지 변경
git rebase -i : 로그 정리 (옵션 많음)
git rebase -i HEAD~3 : 현재 HEAD부터 3개의 커밋 정리
git checkout (브랜치 이름) : 해당 브랜치로 이동 후 헤더를 해당 브랜치로 변경
git checkout -b (브랜치 이름) : 해당 브랜치 생성하면서 checkout
git branch (브랜치 이름) : 해당 브랜치 생성
git branch : 전체 브랜치 표시, * 가 현재 HEAD 위치
git branch -d (브랜치 이름) : 해당 브랜치 삭제
git remote add origin (주소) : 해당 주소에 연결
git remote rm origin : 원격과 연결 해제
git remote -v : 연결 정보 확인
git ls-remote : 연결 정보 확인
git push origin (브랜치이름) : 원격에 브랜치이름이 없으면 브랜치 생성 후 푸쉬
git push origin master : 원격의 origin의 master브랜치에 push(브랜치에 파일 업로드 + 병합)
git pull origin master : 원격의 origin의 master 브랜치에서 pull(로컬브랜치에 파일 다운로드 + 병합)
git clone : ( git init + git remote ~ + git pull ) 3 가지를 한 번에 해결(git 한번도 작업 한적 없을 때) 후 폴더이동.
#원격저장소 기본이름 = origin
#로컬에 없는 원격의 브랜치 다운받는 법 ( 동기화 ) - 항상 master, dev는 동기화하기.
1.
1) git checkout -b (브랜치이름)
2) git fetch origin : github의 모든 브랜치를 다운받음 (pull에서 merge없는 것 = fetch)
3) git merge origin/(브랜치이름) 원격의 해당 브랜치를 merge
2.
1) git checkout -b (브랜치이름) : 로컬에 브랜치 만들고
2) git pull origin (브랜치이름) : 원격의 해당 브랜치를 pull
3.
1) git fetch origin : 원격의 모든 브랜치를 다운받음(모든 브랜치를 동기화 해놓고 필요하면 2)에서 로컬브랜치에 merge)
2) git checkout -b (브랜치이름) origin/(브랜치이름) : 해당브랜치를 로컬에 만들면서 merge
주로 2), 3)번 사용
git merge --squash (브랜치이름) : slave에서 작업하던것을 master에 올릴 때 commit들이 엉킬 수 있으므로 squash하면서 옮김. ( commit이 안된 상태로 넘어오므로 꼭 같은 이름으로 commit하기 )
git merge --no-ff (브랜치이름) : 브랜치의 작업 모두 완료 후 dev브랜치로 merge시 fast-forward를하면 merge기록이 안남기 때문에 fast-forward도 merge기록 남기는 옵션 --no--ff 추가...이후 뜨는 vi 저장
git tag (태그이름) : tag달기
git tag -n : tag가 어느 로그에 달렸나 확인
git push --tags origin main : 원격 main에 tag와 함께 push ( 배포용은 tag 달기 )
git push origin dev : 항상 dev도 push 해두기 ( 추가 개발할때 )
git push --all : 모든 브랜치 한번에 푸쉬 ( 최초 한번 사용 ) -26or27강
git push -f origin topic : 원격과 로컬의 형상이 다를 때 topic브랜치 강제 푸쉬
================================
깃허브 브랜치 이름 바꾸기 : 해당브랜치에서 이름바꾼브랜치 판 후 전 브랜치 삭제
원격 브랜치 삭제 : git push origin --delete 브랜치이름
pull 후 conflict 시 ( 같은 브랜치면 예전코드 삭제 )
==================HEAD ( 예전 코드 ) ========= ( 새 코드 ) =============커밋주소 |
원격의 단일 브랜치를 받고 싶을 때
1. master에서 git pull
2. git checkout -f 원격의 브랜치 이름
하면 그 브랜치만 생기면서 원격의 브랜치가 들어온다.
git stash
https://www.lainyzine.com/ko/article/git-stash-usage-saving-changes-without-commit/
브랜치 하나만 clone 하는 방법
: git clone -b 브랜치명 --single-branch 원격저장소
'Git,Github' 카테고리의 다른 글
소규모 협업하기 시나리오 1편 (0) | 2022.06.23 |
---|