-
git 명령어 archive카테고리 없음 2021. 9. 5. 17:59
terminology
- Remote Repository(원격 저장소) : 원격 서버에서 관리되는 저장소. 다수의 사람이 공유하고 사용하는 레포다.
- Local Repository(로컬 저장소) : 내 맥북 저장소
- Index : 변경 사항이 로컬 저장소에 저장 (commit) 되기 전에 임시로 기록되는 공간. 이 공간에 기록하는 행위를 Staging이라고 한다.
- Commit : 프로젝트의 변경된 이력(Staged)을 로컬 저장소 에 저장하는 행위
- Branch : 애플리케이션 업데이트 구현, 버그 수정 등 작업 변경사항을 하기 위한 단위
- Checkout : 여러 개의 commit 혹은 Branch의 commit 사이를 이동하는 행위. 특정 시점으로 돌아가기
- Merge : 변경 사항이 적용된 다른 Branch 를 현재 Branch에 병합하는 행위
- Conflict : 코드 Merge 시에 상충하는 상황이 발생하는 경우
- Clone : 원격 저장소로부터 특정 프로젝트를 로컬 저장소에 다운로드하기
- Pull : 원격 저장소로부터 변경된 내역을 로컬 저장소에 반영하기
- Push : 로컬 저장소에 수정된 내역을 원격 저장소로 반영하기
1. 초기화
- init : 현재 디렉토리를 git repo로 초기화. 로컬 repo로 관리된다.
- .git 경로가 생성되고 하위에 index, object 등이 존재함
# git init mkdir -p /home/ubuntu/work/git cd /home/ubuntu/work/git git init tree .git
- clone : 원격 저장소 내용을 로컬 저장소로 다운로드
2. staging
- add : 저장 대상 파일들을 인덱스에 스테이징
- 빈 디렉토리는 추가 안됨
- 모든 unstage된 파일을 추가하는 옵션 -A는 주의해서 사용하기 !!
- .gitignore 파일로 add하지 않을 파일 명시 가능
- reset : 스테이징 파일들 -> 언스테이징 하기
- status : 현재 경로의 스테이징 상태 출력
- diff : 스테이징 된 파일에 따라 발생하는 이전 상태와의 차이 출력
- commit : 스테이징(add) 된 내역 스냅샷으로 저장하기
- 스테이징 된 내역 없다면 커밋되지 않습니다
# git add (-A, --all) [file] touch README.md git add README.md git status # git reset [file] git reset README.md # git status (-s, --short) git status -s # git diff (--name-only) echo "hello lgde" >> README.md git add README.md git commit -am "commit 문구" # git commit -m "descriptive message" git status -s git add README.md git status -s git commit -m "commit 문구" git status -s # --> " M": 수정된 파일, "M ": 스테이징된 파일, 커밋된 파일은 status에서 보이지 않음
3. 브랜치
- branch : 로컬 브랜치 목록을 출력, 생성, 삭제 작업을 수행(-r: 리모트, -a: 전체)
# git branch (-r, --remotes | -a, --all) git branch -a # git branch [create-branch] git branch lgde/2021 git branch -a # git branch (-d, --delete) [delete-branch] git branch -d ldge/2021 git branch -a
- checkout : 해당 브랜치로 이동
- 존재하는 브랜치로만 체크아웃이 됨
- -b 옵션 : 브랜치 생성하면서 이동, 이미 존재하는 경우 해당 옵션 쓰면 오류남
- merge : 대상 브랜치와 병합하기, 대상 브랜치는 영향이 없고, 현재 브랜치가 변경됩니다.
- log : 커밋 메시지를 브랜치 히스토리 별로 확인하기
4. situations
- 실수로 삭제된 파일 복구하기
- -- 키워드와 함께 복구할 대상을 지정하면 stage/commit 외의 수정 사항을 되돌립니다.
- -- : 이 키워드 이후에 나오는 항목을 파일명으로 인식한다.
- checkout <path> 는 매칭되는 파일들을 저장되어있는 상테로 restore
- checkout <branch> 는 지정한 브랜치로 HEAD를 이동하라는 의미
git checkout -- . # 수정한 내역 버리고 마지막 커밋 시점으로 롤백 git status -sb ls -al # commit 이전 삭제한 파일 복구하기 # HEAD : 가장 최근 commit -> commit 후에는 해당 commit이 HEAD가 된다 git checkout HEAD {filename} git status -sb
- 브랜치 꼬였을 경우
git reflog # clone한 시점의 HEAD 번호로 리셋 후, 일부 수정된 사항은 checkout 하면 정리할 수 있음 git reset HEAD@{number} git checkout -- .
- pull 해온 파일들 수정 후에 또 pull 하려고 할 때 수정 파일들 오류 목록으로 뜨면서 "Please commit your changes or stash them before you merge" 뱉을때
git stash git pull # 또는 수정파일 직접 백업, 삭제 후 git pull
#홈주제 #생활정보 #생정꿀팁
'카테고리 없음' 카테고리의 다른 글
sk 브로드밴드가 넷플릭스를 고소한 건에 대해 (0) 2021.10.08 터미널 command not found 오류 인데 갑자기 ssh 리마인드를 곁들인 (0) 2021.09.09