지난 번 리눅스 주요 명령어에 대해 포스팅했는데
오늘은 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
branchChicken
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
잘못된 정보가 있으면 언제든 지적 부탁드립니다👻
저도 깃 관련 공부하고 있는데 읽기 좋았어요, 잘 보고 갑니다 :)