[CS] Git 주요 명령어

Kio·2021년 12월 11일
0

CS

목록 보기
6/7
post-thumbnail

지난 번 리눅스 주요 명령어에 대해 포스팅했는데
오늘은 Git 주요 명령어에 대해 글을 써보고자 합니다.



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 명령어에 대해 알아보겠습니다.



git config

이 명령은 커밋에 사용할 작성자 이름과 이메일 주소를 각각 설정합니다.

사용 방법

git config –global user.name “{ name }”
git config –global user.email “{ email address }”



git init

이 명령어는 새로운 레포지터리(repository)를 시작할 때 사용합니다.

사용 방법

git init
git init { repository name }

  • 해당 repository에 들어가서 git init 만 해도 되고
  • git init { repository name } 으로 repository를 지정하여 사용도 가능합니다.
  • 위 두 사진 처럼 master 표기가 보인다면 git init 명령어가 잘 된거입니다.


git clone

이 명령어는 기존 URL에서 저장소를 가져오는 데 사용됩니다.

사용 방법

git clone { url }

  1. 먼저 github에서 gitCloneTest 라는 새로운 repositor를 생성합니다.
  2. mkdir 명령어로 clone을 받을 폴더 gitCloneTest를 생성합니다.
  3. gitCloneTest 폴더로 이동하여 git clone를 해주었습니다.
  • git clone 이 잘 되었다면 위와 같은 맥락의 메시지가 뜨는 걸 볼 수 있습니다.
  • 이제 Local 에서도 기존 URL에 저장되어 있던 내용을 작업이 가능합니다.


git add

add 명령어는 파일을 staging area에 올릴 때 사용합니다. staging area 에 올린다는 것은 쉽게 말하면, 파일을 곧 저장할 건데 컴퓨터에게 준비하라고 알려주는 역할입니다.

사용방법

git add *
git add .
gitt add { 저장할 파일 }

  • git add *git add .는 같은 기능인데 전체 파일을 staging area 올리겠다는 뜻입니다.
  • git add { 저장할 파일 }는 해당 파일만 staging area에 올립니다.


git commit

이 명령어는 파일 버전 기록에 영구적으로 기록하거나 스냅샷을 찍는 과정입니다. 보통 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 를 명령어를 사용하던 커밋 이력을 볼 수 있는데요.

  • 저희가 올렸던 2가지의 커밋이 둘다 보이네요. 이걸 바로 버전관리라고 합니다.
    실수로 커밋을 하였더라도 처음 커밋으로 돌아갈 수 있는 방법이 있답니다.


git diff

git diff

이 명령어는 아직 staging area 에 올라가지 않은 파일이 이전 버전과 어떤 차이점이 있는지 보여줍니다.

사용 방법

git diff

  • 바로 위에서 git commit을 할 때 사용했던 hello.txt를 수정하고
    git diff 명령어를 사용해보겠습니다.
  • 2번째 커밋 메시지를 위한 테스트 는 최신 버전의 파일이고
    diff를 위해 수정합니다.staging area에 올라가 있지 않은 파일입니다.

git diff --staged

이 명령어는 staging area 에 올라와 있는 파일이 최신 버전과 어떤 차이점이 있는지 보여줍니다.

사용 방법

git diff --staged

  • staging area에 올라간 파일이 필요하기에
    git add 를 먼저 하고 git diff --staged를 해보겠습니다.

  • git diff와 같은 파일이라 보여지는 결과는 같지만,
    다른 점은 staging area에 올라와 있는 파일과 비교한다는 점입니다.


git diff HEAD HEAD^

가장 최근의 commit과 그 전의 commit을 비교합니다.

사용방법

git diff HEAD HEAD^

  • git diff HEAD HEAD^ 를 통해 내용을 비교해볼까요?

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



git reset

git reset -- hard { commit }

이 명령어는 모든 기록을 삭제하고 지정된 커밋으로 돌아갑니다.

사용 방법

git reset --hard { commit }

  • git reset 을 사용하기 위해 hello.txt 를 수정해보겠습니다.
  • add, commit 까지 진행합니다.
  • git log 를 보면 방금 위에서 commit 했던 git reset을 위한 commit 이 잘 들어가 있는 걸 볼 수 있는데요.
  • 마지막 commit 을 reset 해보겠습니다.
    git reset 5f05c52ee28e1e67c17279842d43a15354e5275d
  • reset 이후 git log 를 확인하니 마지막 커밋이 삭제된 걸 볼 수 있습니다.

git reset { commit }

이 명령어는 지정된 커밋 이후의 모든 커밋을 취소하고 변경했던 사항은 로컬에서 유지합니다. 주로 커밋만을 취소하고 싶을 때 사용합니다.

사용 방법

git reset { commit }


git reset --hard

이 명령어는 모든 기록을 삭제하니, 사용에 주의해주세요.

사용 방법

git reset --hard


git checkout -- { 파일 }

이 명령어는 특정 파일의 모든 기록을 삭제합니다.

사용 방법

git checkout -- { 파일 }



git status

이 명령어는 commit 해야하는 모든 파일들을 보여줍니다.

사용 방법

git status



git rm

rm { file }

이 명령어는 file을 working dircetory(폴더)에서 파일을 삭제합니다.

사용 방법

rm { file }

  • rm 명령어를 이용해 hello.txt를 삭제해보겠습니다.

rm -m { folder }

이 명령어는 folder(폴더)를 삭제할 때 사용됩니다.

사용 방법

rm -m { folder }

  • 파일을 삭제할 때와는 다르게 폴더를 삭제할 때는 rm -m으로 명령이 가능합니다.


git log

소개 전에 위에서 예시로 많이 사용해서 익숙하실텐데요.
이 명령어는 현재 branch(브랜치)의 버전 기록 보여줍니다.

사용 방법

git log



git show { commit }

이 명령어는 지정된 커밋의 메타테이터 및 콘텐츠 변경 사항을 보여줍니다.

사용 방법

git show { commit }



git tag { commit }

이 명령어는 지정된 커밋을 태그할 수 있습니다.

사용 방법

git tag { commit }

  • commit 말고도 tagSave라는 걸 tag 해보았는데요.
  • git tag 명령어로 무엇을 tag 했는지 확인할 수 있답니다.


git branch

git branch

이 명령어는 현재 repository의 모든 local branches를 보여줍니다.

사용 방법

git branch

  • git branch 명령어로 어떤 branch가 있는지 확인해볼까요?
  • 아래처럼 총 3개의 branch 가 있는 걸 확인할 수 있네요.

git branch { branch name }

이 명령어는 새로운 branch를 생성할 때 사용합니다.

사용 방법

git branch { branch name }

  • myNewBranch 라는 새로운 branch를 만들어볼게요.
  • git branch를 통해 확인해보면, 3개의 브런치밖에 없었지만 myNewBranch 까지 4개가 된 걸 확인할 수 있네요.

git branch -d { branch name }

이 명령어는 branch를 삭제합니다.

사용 방법

git branch -d { branch name }

  • 위에서 만들었던 myNewBranch 를 삭제해보겠습니다.
  • git branch 에서도 안보이니 삭제가 잘 되었네요.


git checkout

git checkout { branch name }

이 명령어는 다른 branch로 전환할 때 쓰입니다.

사용 방법

git checkout { branch name }

  • git checkout my_branch 명령어를 통해
    main 에서 my_branch 로 이동해보겠습니다.

git checkout -b { branch name }

이 명령어는 branch를 생성하고, 생성한 branch로 전환합니다.

사용 방법

git checkout -b { branch name }

  • git checkout -b Chicken 명령어를 통해
    main 에서 Chicken 으로 이동한 걸 확인할 수 있습니다.


git merge

이 명령어는 지정된 branch의 기록을 현재 branch로 병합합니다.

사용 방법

git merge { branch name }

  • Chicken branch를 main branch에 merge(병합) 해보려고 하는데요.
  • 👇 현재의 main branch
  • 👇 현재의 Chicken branch
  • 🚨 주의할 점은 꼭 commit 하고 branch를 전환해야 합니다.
    그렇지 않으면 merge 를 원하지 않아도 될 수도 있거든요.
  • main branch로 돌아왔으니 merge 를 해보면
    ChickenRecipe.txt 가 있는 걸 확인할 수 있으니 잘 되었네요.


git remote

이 명령어는 remote server(원격저장소) 와 local repository(로컬저장소)를 연결시켜줍니다.

사용 방법

git remot add { variable name } { Remote Server Ling }



git pull

이 명령어는 remote server(원격저장소)의 변경 사항을 가져와 local repository(로컬저장소)로 병합합니다.

사용 방법

git pull { Repository Link }

git pull origin { branch name }

  • 이미 Link가 연결되어 있다면 각 branch에 맞게 이렇게도 가능합니다.
  • git pull origin main 으로 git pull을 해보았습니다.


git stash

git stash save

이 명령어는 수정된 모든 파일을 임시적으로 저장합니다.

git stash pop

이 명령어는 최근에 stashed 한 파일을 복원합니다.

git shash list

이 명령어는 모든 stashed 한 목록을 보여줍니다.

git stash drop

이 명령어는 최근에 stashed 한 파일을 삭제합니다.



참고

Top 20 Git Commands With Examples



잘못된 정보가 있으면 언제든 지적 부탁드립니다👻

profile
Someday_iOS_Dev

1개의 댓글

comment-user-thumbnail
2021년 12월 12일

저도 깃 관련 공부하고 있는데 읽기 좋았어요, 잘 보고 갑니다 :)

답글 달기