본문 바로가기

Git,Github

Git/Github 명령어 총정리

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
Recent Posts
Popular Posts
Recent Comments