Git 배우는 사이트 유용하다...
https://learngitbranching.js.org/?locale=ko
Learn Git Branching
An interactive Git visualization tool to educate and challenge!
learngitbranching.js.org
카테고리
- 설정과 초기화 |
- 기본적인 사용법 |
- 브랜치 |
- Git 이력 |
- 원격 저장소 |
# 설정과 초기화
- 전역 사용자명/이메일 구성하기
git config --global user.name "my name"
git config --global user.email "my email address"
- 저장소별 사용자명/이메일구성하기(해당 저장소 디렉토리로 이동후)
git config user.name "my name"
git config user.email "your email address"
***참고로 user설정이 되어있지 않으면 Github에 있는 repository에 변경사항을
푸시 한다고 해도 commit count집계도 안되고 해당 머킷의 작성자 프로필 아이콘도?로
표시되기 때문에 웬만하면 name과 email주소를 설정하길 추천한다.
- 전역 설정 정보 조회
git config --global --list
- 저장소별 설정 정보 조회
git config --list
- Git의 출력결과 색상 활성화하기
git config --global color.ui "auto"
- 새로운 저장소 초기화하기
mkdir / path / newDir
cd / path / newDir
git init
- 저장소 복제하기
git clone <저장소 url>
- 새로운 원격 저장소 추가하기
git remote add <원격저장소> <저장소 url>
# 기본적인 사용법
아래 명령어에서 []는 선택적인 매개변수를 의미한다.
- 새로운 파일을 추가하거나 존재하는 파일 스테이징하고 커밋하기
git add <파일>
git commit -m "<메세지>"
- 파일 일부를 스테이징하기
git add -p [<파일>[<파일>][기타파일들..]]
- add 명령에서 Git대화모드를 사용하여 파일 추가하기
git add -i
- 수정되고 추적되는 파일의 변경사항 스테이징 하기
git add -u[<경로[<경로>]>]
- 수정되고 추적되는 모든파일의 변경사항 커밋하기
git commit -m "<메세지>" -a
- 작업 트리의 변경사항 돌려놓기
git checkout HEAD <파일>[<파일>]
- 커밋되지않고 스테이징된 변경 사항 재설정하기
git reset HEAD <파일>[<파일>]
- 마지막 커밋 고치기
git commit -m "<메세지>" --amend
- 이전 커밋을 수정하고 커밋 메세지를 재사용하기
git commit -C HEAD --amend
# 브랜치
- 지역 브랜치 목록 보기
git branch -r
- 원격 브랜치 목록보기
git branch -a
- 현재 브랜치에서 새로운 브랜치 생성하기
git branch <새로운 브랜치명>
- 현재 브랜치에서 새로운 브랜치 생성하고 체크아웃하기
git checkout -b <새로운 브랜치명>
- 다른 시작 지점에서 브랜치 생성하기
git branch <새로운 브랜치명><브랜치를 생성할 위치>
- 기존의 브랜치를 새로운 브랜치로 덮어쓰기
git branch -f <기존 브랜치명>[<브랜치를 생성할 위치>]
- 브랜치를 옮기거나 브랜치명 변경하기
+ <새로운 브랜치>가 존재하지 않을 경우
git checkout -m<기존 브랜치명> <새로운 브랜치명>
+ 무조건 덮어쓰기
git checkout -M <기존 브랜치> <새로운 브랜치>
- 다른 브랜치를 현재 브랜치로 합치기
git merge <브랜치명>
- 커밋하지 않고 합치기
git merge --no-commit <브랜치명>
- 선택하여 합치기
git cherry-pick<커밋명>
- 커밋하지않고 선택하여 합치기
git cherry-pick -n <커밋명>
- 브랜치의 이력을 다른 브랜치에 합치기
git merge --squash <브랜치명>
- 브랜치 삭제하기
+ 삭제할 브랜치가 현재 브랜치에 합쳐졌을 경우에만
git branch -d <삭제할 브랜치>
+ 삭제할 브랜치가 현재 브랜치에 합쳐지지 않았어도
git branch -D <삭제할 브랜치>
# Git 이력
- 모든 이력보기
git log
- 변경 사항을 보여주는 패치와 함께 로그 표시하기
git log -p
# 패치란 commit한 내용을 확인해볼 수 있다. 즉, 패치됬따 라는 업데이트된 내용을 확인할 수 있는거임
- 1개의 항목만 보이도록 로그개수 제한하기
git log -1
- 20개의 항목과 패치만 보이도록 로그 제한하기
git log -20 -p
- 1시간 동안의 커밋 로그 보기
git log --since="1hours"
- 1달 동안의 커밋 로그 보기
git log --since="1month"
- 이틀전까지의 커밋 로그 보기
git log --before="2days"
- 커밋완료한 전체 내역 보기
git log HEAD
- HEAD보다 세개 이전의 커밋 로그 보기
git log -1 HEAD~3
git log -1 HEAD^^^
git log -1 HEAD~1^^
(모두 같은 내용)
- 두 지점 사이의 커밋 로그 보기
git log <시작지점>...<끝지점>
* 시작지점이나 끝 지점은 커밋명, 브랜치명, 혹은 태그명이 될 수 있고 조합하여 사용 가능
- 각 항목의 로그 이력한 줄 씩 보기
git log --pretty
- 각 항목마다 영향 받은 줄의 통계보기
git log --stat
ex)
README.md | 3 +++
1 file changed, 3 insertions(+)
- 커밋할 시점의 파일상태 보기
git log --name-status
ex)
M CodeStarterCamp_Week1/main.swift
M README.md
- 현재 작업 트리와 인덱스의 차이점 보기?
git diff
- 인덱스와 저장소 차이점 보기
git diff --cached
- 작업 트리와 특정위치간의 차이점 보기
+ 시작 지점은 커밋명 or 브랜치명 or 태그명이다.
git diff <시작지점>
- 저장소의 두 지점 사이의 차이점 보기
git diff <시작지점> <끝지점>
- 차이점 통계 보기
git diff --stat <시작지점> [<끝지점>]
- 파일의 커밋 정보 줄 단위로 보기
git blame <파일>
- 파일의 줄 단위의 복사, 붙여 넣기, 이동정보보기
git blame -M <파일>
- 파일의 줄 단위의 이동과 원본 파일 정보보기
git blame -C -C <파일>
- 로그에서 복사와 붙여 넣은 정보보기
git log -C -C -p -1 <특정지점>
# 원격 저장소
- 저장소 복제하기
git clone <저장소>
- 마지막 200개의 커밋만 포함하여 저장소 복제하기
git clone --depth 200<저장소>
- 새로운 원격저장소 추가하기
git remote add <원격저장소><저장소 url>
- 모든 원격 브랜치 목록보기
git branch -r
- 원격 브랜치에서 지역 브랜치 생성하기
git branch <새로운 브랜치명> <원격브랜치명>
- 원격 태그에서 지역 브랜치 생성하기
git branch <새로운 브랜치> <원격 태그>
- origin 저장소에서 합치지 않고 지역브랜치로 변경사항 가져오기
git fetch
- 원격 저장소에서 합치지 않고 지역 브랜치로 변경사항 가져오기
git fetch <원격저장소>
- origin 저장소에서 변경사항을 가져와 현재 브랜치에 합치기
git pull
- 지역 브랜치를 원격브랜치에 푸시하기
git push <원격저장소> <지역브랜치명>
- 지역 브랜치를 동일한 이름의 원격 브랜치에 푸싱하기
git push <원격 저장소> <지역브랜치>
- 원격저장소에서 쓸모가 없어진 원격 브랜치 제거하기
git remote prune <원격저장소>
- 원격 저장소에서 제거하고 관련된 브랜치도 제거하기
git remote rm <원격 저장소>
Reference
https://medium.com/@joongwon/git-git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-c25b421ecdbd
[Git] Git 명령어 정리
한동안 포스팅 주제도 못 잡았고 회사일이 너무 바빠서 블로그 엄두도 못 내다가 추석 연휴 때 고향에 내려가서 휴식을 취하며 독서도 하고 포스팅도 하려고 했지만.. 그것도 여의치 않았다. 대
medium.com
Git 문서
'Git' 카테고리의 다른 글
[Git] 로컬과 원격저장소를 연결하는 방법 (0) | 2021.12.23 |
---|---|
[Git] 원격저장소와 로컬저장소의 커밋이 다를경우 (0) | 2021.12.17 |
[Git] There was a problem with the editor 'vi'. 오류 해결 (0) | 2021.12.08 |