지난 번 리눅스 주요 명령어에 대해 포스팅했는데
오늘은 Git 주요 명령어에 대해 글을 써보고자 합니다.
오늘 다룰 git 명령어는 아래와 같습니다.
git config
git init
git clone
git add
git commit
git diff
git reset
git status
git rm
git log
git show
git tag
git branch
git checkout
git merge
git remote
git push
git pull
git stash
편의 상
{ }중괄호는 내용이 들어가야 하는 곳을 표기하는 것으로
실제 명령어 사용시에는 사용하지 않아도 됨을 전제로 하겠습니다.
이 명령은 커밋에 사용할 작성자 이름과 이메일 주소를 각각 설정합니다.
사용 방법
git config –global user.name “{ name }”
git config –global user.email “{ email address }”

이 명령어는 새로운 레포지터리(repository)를 시작할 때 사용합니다.
사용 방법
git init
git init { repository name }
git init 만 해도 되고
git init { repository name } 으로 repository를 지정하여 사용도 가능합니다.
master 표기가 보인다면 git init 명령어가 잘 된거입니다.이 명령어는 기존 URL에서 저장소를 가져오는 데 사용됩니다.
사용 방법
git clone { url }
github에서 gitCloneTest 라는 새로운 repositor를 생성합니다.mkdir 명령어로 clone을 받을 폴더 gitCloneTest를 생성합니다.gitCloneTest 폴더로 이동하여 git clone를 해주었습니다.
git clone 이 잘 되었다면 위와 같은 맥락의 메시지가 뜨는 걸 볼 수 있습니다.이
add명령어는 파일을staging area에 올릴 때 사용합니다.staging area에 올린다는 것은 쉽게 말하면, 파일을 곧 저장할 건데 컴퓨터에게 준비하라고 알려주는 역할입니다.
사용방법
git add *
git add .
gitt add { 저장할 파일 }
git add *와 git add .는 같은 기능인데 전체 파일을 staging area 올리겠다는 뜻입니다.
git add { 저장할 파일 }는 해당 파일만 staging area에 올립니다.
이 명령어는 파일 버전 기록에 영구적으로 기록하거나 스냅샷을 찍는 과정입니다. 보통
add명령어 이후에 쓰이는데요. 이 저장할 파일을 어떤 기록으로 저장할 것인지 묻는 과정입니다. 쉽지 않죠?
저희가 발표 PPT를 저장한다고 가정할게요. 파일 이름을 아래처럼 저장한 적이 있으실 것 같은데요.commit은 지금 했던 작업내용을 메시지로 남기는 역할을 합니다.
- 최종본 PPT
- 진짜 최종본 PPT
- 진짜진짜 최종본 PPT
사용 방법
git commit -m “{ 커밋 메시지 }”
commit을 남기기 위해서는 먼저 add를 해야하는 데 그럼 실제 파일을 수정해야겠죠? vim 명령어를 이용해 hello.txt를 수정하였습니다.


git add 명령어로 파일을 staging area에 올리고
commit 명령어로 커밋 메시지를 입력했는데요. 아래와 같은 맥락이라면 성공입니다.
commit을 해보도록 하겠습니다.vim 으로 hello.txt 를 수정해보겠습니다.

add 명령어로 staging area에 올려주고 commit 합니다
git log 를 명령어를 사용하던 커밋 이력을 볼 수 있는데요. 
버전관리라고 합니다.
이 명령어는 아직
staging area에 올라가지 않은 파일이 이전 버전과 어떤 차이점이 있는지 보여줍니다.
사용 방법
git diff
git commit을 할 때 사용했던 hello.txt를 수정하고git diff 명령어를 사용해보겠습니다.
2번째 커밋 메시지를 위한 테스트 는 최신 버전의 파일이고diff를 위해 수정합니다. 가 staging area에 올라가 있지 않은 파일입니다.
이 명령어는
staging area에 올라와 있는 파일이 최신 버전과 어떤 차이점이 있는지 보여줍니다.
사용 방법
git diff --staged
staging area에 올라간 파일이 필요하기에
git add 를 먼저 하고 git diff --staged를 해보겠습니다.
위 git diff와 같은 파일이라 보여지는 결과는 같지만,
다른 점은 staging area에 올라와 있는 파일과 비교한다는 점입니다.
가장 최근의 commit과 그 전의 commit을 비교합니다.
사용방법
git diff HEAD HEAD^
git diff HEAD HEAD^ 를 통해 내용을 비교해볼까요?

commit 간의 비교를 위해 수정합니다. 가 최근의 commit 할 때 바꾼 내용이고
2번째 커밋 메시지를 위한 테스트 가 그 이전의 commit 할 때 바꾼 내용입니다.

이 명령어는 모든 기록을 삭제하고 지정된 커밋으로 돌아갑니다.
사용 방법
git reset --hard { commit }
git reset 을 사용하기 위해 hello.txt 를 수정해보겠습니다.

add, commit 까지 진행합니다.
git log 를 보면 방금 위에서 commit 했던 git reset을 위한 commit 이 잘 들어가 있는 걸 볼 수 있는데요.
reset 해보겠습니다.git reset 5f05c52ee28e1e67c17279842d43a15354e5275d
reset 이후 git log 를 확인하니 마지막 커밋이 삭제된 걸 볼 수 있습니다.
이 명령어는 지정된 커밋 이후의 모든 커밋을 취소하고 변경했던 사항은 로컬에서 유지합니다. 주로 커밋만을 취소하고 싶을 때 사용합니다.
사용 방법
git reset { commit }
이 명령어는 모든 기록을 삭제하니, 사용에 주의해주세요.
사용 방법
git reset --hard
이 명령어는 특정 파일의 모든 기록을 삭제합니다.
사용 방법
git checkout -- { 파일 }
이 명령어는 commit 해야하는 모든 파일들을 보여줍니다.
사용 방법
git status

이 명령어는 file을 working dircetory(폴더)에서 파일을 삭제합니다.
사용 방법
rm { file }
rm 명령어를 이용해 hello.txt를 삭제해보겠습니다.
이 명령어는 folder(폴더)를 삭제할 때 사용됩니다.
사용 방법
rm -m { folder }
파일을 삭제할 때와는 다르게 폴더를 삭제할 때는 rm -m으로 명령이 가능합니다. 
소개 전에 위에서 예시로 많이 사용해서 익숙하실텐데요.
이 명령어는 현재 branch(브랜치)의 버전 기록 보여줍니다.
사용 방법
git log


이 명령어는 지정된 커밋의 메타테이터 및 콘텐츠 변경 사항을 보여줍니다.
사용 방법
git show { commit }


이 명령어는 지정된 커밋을 태그할 수 있습니다.
사용 방법
git tag { commit }
commit 말고도 tagSave라는 걸 tag 해보았는데요.
git tag 명령어로 무엇을 tag 했는지 확인할 수 있답니다.
이 명령어는 현재 repository의 모든 local branches를 보여줍니다.
사용 방법
git branch
git branch 명령어로 어떤 branch가 있는지 확인해볼까요?
branch 가 있는 걸 확인할 수 있네요.
이 명령어는 새로운 branch를 생성할 때 사용합니다.
사용 방법
git branch { branch name }
myNewBranch 라는 새로운 branch를 만들어볼게요.
git branch를 통해 확인해보면, 3개의 브런치밖에 없었지만 myNewBranch 까지 4개가 된 걸 확인할 수 있네요.
이 명령어는 branch를 삭제합니다.
사용 방법
git branch -d { branch name }
myNewBranch 를 삭제해보겠습니다. 
git branch 에서도 안보이니 삭제가 잘 되었네요.
이 명령어는 다른 branch로 전환할 때 쓰입니다.
사용 방법
git checkout { branch name }
git checkout my_branch 명령어를 통해main 에서 my_branch 로 이동해보겠습니다. 
이 명령어는 branch를 생성하고, 생성한 branch로 전환합니다.
사용 방법
git checkout -b { branch name }
git checkout -b Chicken 명령어를 통해main 에서 Chicken 으로 이동한 걸 확인할 수 있습니다.
이 명령어는 지정된 branch의 기록을 현재 branch로 병합합니다.
사용 방법
git merge { branch name }
Chicken branch를 main branch에 merge(병합) 해보려고 하는데요.main branch
Chicken branchcommit 하고 branch를 전환해야 합니다.merge 를 원하지 않아도 될 수도 있거든요.
main branch로 돌아왔으니 merge 를 해보면ChickenRecipe.txt 가 있는 걸 확인할 수 있으니 잘 되었네요.
이 명령어는 remote server(원격저장소) 와 local repository(로컬저장소)를 연결시켜줍니다.
사용 방법
git remot add { variable name } { Remote Server Ling }

이 명령어는 remote server(원격저장소)의 변경 사항을 가져와 local repository(로컬저장소)로 병합합니다.
사용 방법
git pull { Repository Link }
git pull origin { branch name }
- 이미 Link가 연결되어 있다면 각 branch에 맞게 이렇게도 가능합니다.
git pull origin main 으로 git pull을 해보았습니다.
이 명령어는 수정된 모든 파일을 임시적으로 저장합니다.
이 명령어는 최근에 stashed 한 파일을 복원합니다.
이 명령어는 모든 stashed 한 목록을 보여줍니다.
이 명령어는 최근에 stashed 한 파일을 삭제합니다.
Top 20 Git Commands With Examples
잘못된 정보가 있으면 언제든 지적 부탁드립니다👻
저도 깃 관련 공부하고 있는데 읽기 좋았어요, 잘 보고 갑니다 :)