프로그래밍/Git

[Git 개념 정리] Git 개념 정리 5️⃣ (Git에서 사용하는 주요 커맨드 리스트)

ourkofe's story 2024. 7. 26. 00:56

이번 글은 코드잇 강의를 수강하면서 배운 내용을 주로 하여 정리되어 있습니다. (코드잇 스프린트 데이터 애널리스트 트랙 1기 훈련생)


이번 글에서는 Git을 사용하면서 활용할 수 있는 Git 주요 커맨드 리스트를 제공하려고 합니다.

git init 현재 디렉토리를 Git이 관리하는 프로젝트 디렉토리(=working directory)로 설정하고 그 안에 레포지토리(.git 디렉토리) 생성
git config user.name '사용자명' 현재 사용자의 아이디를 ‘사용자명'으로 설정합니다.
git config user.email '이메일 주소'  현재 사용자의 이메일 주소를 '이메일 주소'로 설정합니다.
git add [파일 이름]  수정사항이 있는 특정 파일을 staging area에 올리기
git add [디렉토리명] 해당 디렉토리 내에서 수정사항이 있는 모든 파일들을 staging area에 올리기
git add . working directory 내의 수정사항이 있는 모든 파일들을 staging area에 올립니다.
git reset [파일 이름] staging area에 올렸던 파일을 다시 내립니다.
git status Git이 현재 인식하고 있는 프로젝트 관련 내용들을 출력합니다.(문제 상황이 발생했을 때 현재 상태를 파악하기 위해 활용하면 좋습니다.)
git commit -m "커밋 메시지" 현재 staging area에 있는 것들을 커밋으로 남깁니다.
git help [커맨드 이름] 사용법이 궁금한 Git 커맨드의 공식 메뉴얼 내용 출력합니다.
git push —set-upstream origin main 로컬 레포지토리의 내용을 처음으로 리모트 레포지토리에 올릴 때 사용
git push 로컬 레포지토리의 내용을 리모트 레포지토리에 보내기
git pull 리모트 레포지토리의 내용을 로컬 레포지토리로 가져오기
git clone [프로젝트의 GitHub 상 주소] GitHub에 있는 프로젝트를 내 컴퓨터로 가져오기
git log 커밋 히스토리를 출력합니다.
git log --pretty=oneline --pretty 옵션을 사용하면 커밋 히스토리를 다양한 방식으로 출력할 수 있습니다.
--pretty 옵션에 oneline이라는 값을 주면 커밋 하나당 한 줄씩 출력해줍니다.
git show [커밋 아이디] 특정 커밋에서 어떤 변경사항이 있었는지 확인합니다.
git commit --amend 최신 커밋을 다시 수정해서 새로운 커밋으로 만듭니다.
git config alias.[별명] [커맨드] 길이가 긴 커맨드에 별명을 붙여서 이후로 별명으로 해당 커맨드를 실행할 수 있도록 설정합니다.
git diff [커밋 A의 아이디] [커밋 B의 아이디] 두 커밋 간의 차이를 비교합니다.
git reset --soft [커밋 아이디] HEAD가 특정 커밋을 가리키도록 이동시킵니다.
git reset --mixed [커밋 아이디] staging area도 특정 커밋처럼 리셋합니다. (옵션을 생략하면 --mixed 옵션이 적용됨)
git reset --hard [커밋 아이디] working directory도 특정 커밋처럼 리셋합니다.
git reset —hard HEAD^ 현재 커밋보다 하나 이전의 커밋을 HEAD로 변경
git reset —hard HEAD~n 현재 커밋보다 n만큼의 이전 커밋을 HEAD로 변경
git tag [태그 이름] [커밋 아이디] 특정 커밋에 태그를 붙입니다.
git branch [새 브랜치 이름] 새로운 브랜치를 생성합니다.
git checkout -b [새 브랜치 이름] 새로운 브랜치를 생성하고 그 브랜치로 바로 이동합니다.
git branch -d [기존 브랜치 이름] 브랜치를 삭제합니다.
git checkout [기존 브랜치 이름] 그 브랜치로 이동합니다.
git merge [기존 브랜치 이름] 현재 브랜치에 다른 브랜치를 병합합니다.
git merge --abort 병합을 하다가 conflict가 발생했을 때, 일단은 병합 작업을 취소하고 이전 상태로 돌아갑니다.
git fetch 로컬 레포지토리에서 현재 HEAD가 가리키는 브랜치의 업스트림(upstream) 브랜치로부터 최신 커밋들을 가져오고 병합은 하지 않습니다.
git blame 특정 파일의 내용 한줄한줄이 어떤 커밋에 의해 생긴 것인지를 출력합니다.
git revert 특정 커밋에서 이루어진 작업을 되돌리는(취소하는) 커밋을 새로 생성합니다.
git reflog HEAD가 그동안 가리켜왔던 커밋들의 기록을 출력합니다.
git log --all 모든 브랜치의 커밋 히스토리를 출력합니다.
git log --all --graph 모든 브랜치의 커밋 히스토리를, 커밋 간의 관계가 잘 드러나도록 그래프 형식으로 출력합니다.
git rebase [브랜치 이름]  A, B 브랜치가 있는 상태에서 지금 HEAD가 A 브랜치를 가리킬 때, git rebase B를 실행하면 A, B 브랜치가 분기하는 시작점이 된 공통 커밋 이후로부터 존재하는 A 브랜치 상의 커밋들이 그대로 B 브랜치의 최신 커밋 이후로 이어붙여집니다.
git stash 현재 작업 내용을 스택 영역에 저장합니다.
git stash apply [커밋 아이디] 스택 영역에 저장된 가장 최근의(혹은 특정) 작업 내용을 working directory에 적용합니다.
git stash drop [커밋 아이디] 스택 영역에 저장된 가장 최근의(혹은 특정) 작업 내용을 스택에서 삭제합니다.
git stash pop [커밋 아이디] 스택 영역에 저장된 가장 최근의(혹은 특정) 작업 내용을 working directory에 적용하면서 스택에서 삭제합니다.
git cherry-pick [커밋 아이디] 특정 커밋의 내용을 현재 커밋에 반영합니다.

출처 및 참고자료 : 코드잇 사이트 강의 'Git' https://www.codeit.kr/topics/git

728x90