본문 바로가기

Git

[Git] 자주 사용되는 Git용어 정리

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 문서

https://git-scm.com/docs