본문 바로가기
Git

Git Notion 정리 내용

by 진꿈청 2024. 1. 26.

간단한 Git 명령어들을 노션에 정리한 내용이다.

 

git init # 깃 저장소를 초기화 한다. .git 파일이 들어감

# 작업 트리: 현재 활동 하고 있는 환경(작업 디렉토리)

# 스테이지: add 하면 스테이지에 올라감

# 저장소: commit 하면 저장소에 올라간다.

git status # 수정된 파일, 커밋해야 되는 파일 등등을 보여줌.

git log # 커밋 내역을 보여줌 여기서 나오는 해시값을 이용해 reset, stash가 가능함(커밋 해시, 최신 버전, 작성자, 로그 등)

git commit -am # 한 번 커밋한 파일은 add를 한 번에 수행 가능함

git diff # 방금 수정한 파일이 저장소에 있는 최신 버전의 파일과 어떻게 다른 지 확인이 가능

git log —stat # 커밋에 관련된 파일까지 볼 수 있음(어떤 파일이 수정되었는지)

git commit —ammend # 방금 커밋한 메시지를 수정할 수 있다.

git checkout — <파일명> # 작업 트리에서 수정한 내용을 되돌려준다.

git reset HEAD <파일명> # 스테이지에서 파일을 내린다.

git reset HEAD^ # 마지막에 한 커밋을 취소하는 방법이다.(커밋도 취소되고 스테이지에서도 내려옴)

—soft HEAD^ # 최근 커밋 전 상태

—mixed HEAD^ # 최근 커밋, 스테이지 전 상태(기본값)

—hard HEAD^ # 최근 커밋, 스테이지, 파일 수정 전 상태

git reset —hard <커밋 해시> # 해당 해시로 head를 옮긴다. 해시 후 커밋은 삭제된다.

git revert <커밋 해시> # 커밋을 삭제하지 않고 보류한 다음 그 전 커밋으로 돌아감.

git branch # 브랜치 확인하기

git branch <브랜치명> # 브랜치 만들기, 현재 브랜치의 작업 내용을 복사하여 새로운 브랜치를 만든다.

git checkout <브랜치명> # 브랜치 사이 이동하기

git log —oneline # 깃 로그 한 줄로 간략하게 표현하기

git log —oneline —branches # 각 브랜치별로의 커밋을 볼 수 있다.

git log —oneline —branches —graph # 각 브랜치의 커밋 연결관계를 점선으로 도식화 하여 볼 수 있다.

git log master..<브랜치명> # 두 브랜치의 커밋의 차이를 알 수 있다. (뒤에 있는 거 기준)

git merge <브랜치 명> # 현재 브랜치에서 다른 브랜치를 병합한다.(현재 브랜치에서 수정한 것이 없다면 빨리 감기 병합이 된다.)

git merge <브랜치 명> → 계속 # 두 브랜치 다 수정되었다면 자동으로 merge commit 메시지가 생기고 커밋된다.

git merge <브랜치 명> → 계속 # 

# 충돌이 났을 경우 터미널이 충돌이 난 파일을 알려주고 충돌 난 파일에는 <<<HEAD 현재 브랜치의 내용 >>>>><브랜치명> 병합할 브랜치의 내용이 표시된다. 따라서 그것을 수정하고 merge라는 이름으로 커밋을 다시 하면 된다.

git branch -d <브랜치명> # 브랜치 삭제

git reset <커밋 해시> # 기존 커밋 연결이 삭제되고 커밋 해시의 값이 변경된다.

git stash # 커밋하지 않은 수정 내용을 저장한다.

git stash list # stash 목록을 보여준다.

git stash pop # stash 목록에서 가장 최근 항목을 되돌린다.

git stash apply # stash 목록에서 pop처럼 삭제하지 않고 적용만 시킨다.

# 원격 저장소: 버전 관리 파일들을 쉽게 백업할 수 있으며 다른 사람들과 공동 작업이 가능해진다.

git remote add origin <깃 주소> # 현재 지역 저장소와 원격 저장소를 연결한다.

git remote -v # 원격 저장소와 제대로 연결되어 있는지 확인.

git push # 원격 저장소에 파일 올리기

git push -u origin <원격 브랜치명> # -u를 사용하면 다음에 push할 때는 git push만 사용하면 된다.

git pull origin <원격 브랜치명> # 원격 저장소에서 파일 내려받기(일종의 merge)

git fetch # 원격 브랜치 정보를 가져오는 명령어로 바로 pull로 merge되는 것이 아니라(커밋도 안바뀜) FETCH_HEAD라는 브랜치에 해당 내용을 저장한다. 따라서 git checkout FETCH_HEAD에 가서 바뀐 내용을 확인하고 pull하고 싶은 브랜치에 돌아가 FETCH_HEAD를 머지한다.(확인 후 pull도 가능)

git merge origin/master # 페치한 뒤 병합할 때 원격 master 브랜치에 있는 커밋이라면 다음과 같이 병합

git clone <원격 저장소 주소> # 원격 저장소를 복제하고 지역 저장소도 자동으로 만들어준다.

# 첫 번째 커밋이 아니라면 pull먼저 하는 것이 좋다.

git rebase # 장점 → git flow를 일자로 유지할 수 있다. 이유: 이곳저곳에서 merge하고 pull하는 것이 아니라 일자로 유지되기 때문이다.

git checkout -b f # 브랜치를 만들면서 이동

# pull request 풀 리퀘스트를 누르게 되면 master에 해당 원격 브랜치의 내용이 merge된다.

 

참조 블로그

https://blog.naver.com/codeitofficial/222011693376 (Git 체크아웃 커밋 이동)
https://kotlinworld.com/280 (깃 체크아웃 커밋 이동)

 

[Git] git checkout 이용해 commit 단위로 파일 제어하기

git checkout이용해 특정 commit으로 되돌리기 git checkout [commit hash] 를 통해 특정 commit으로 되돌릴 수 있다. 이때 [commit hash]는 모든 해시값을 써도 되고 앞 7자리 해시 값을 써도 된다. git checkout [commit h

kotlinworld.com

 

git reset과 git checkout의 차이점(심화)

git reset과 git checkout의 차이점에 대해서 구체적으로 알아보겠습니다. 이 부분은 Git을 사용할 때 꼭 ...

blog.naver.com