[Git]Git 명령어 익히기

플러터 앱 개발중 텍스트 버튼에 이모지를 추가해 가시성을 올리고 싶어서 알아보았다.

1) git init

initinitialize(초기화하다, 초기 설정하다)의 줄임말이다.

즉, 프로그래밍을 git으로 관리하기 위해 딱 한 번만 입력하면 되는 명령어이다.

바탕화면에 파일을 생성하고 git init을통해 깃과 연결해준다.

2) git add <파일명> 혹은 git add .

이제 git을 이용해서 코드를 저장해보자

git addgit commit

코드를 저장하기전 터미널에 이메일닉네임 을 등록해준다.

이왕이면 github의 이메일 및 닉네임과 같이하면 좋다!

미리하지 않으면 Please tell me who you are. 이라고 뜨면서 커밋이 되지 않는다.

git config --global user.email "abc1234@gmail.com"
git config --global user.name "nickname"

터미널에서 git add <파일명>git commit -m “메세지”를 다음과 같이 입력해보자.

저장하고 싶은 파일을 지정하는 것이 바로 git add 명령어이고, 실제로 저장하는 명령어가git commit 명령어이다.

여기서 원하는 파일명만 저장하고 싶을때는

git add <저장할 파일이름 ex. hello.html> 
git commit -m "hello 파일추가"

수정한 파일을 모두 저장하고싶을때는 아래와같이 입력한다.

git add .

git add . 의 뒤에 점(.)은 현재 폴더(디렉토리)에 있는 모든 파일들을 의미한다고 생각하면 된다.

3) git status

파일을 다 수정하고 git status 명령어를 입력하면 commit 할 파일이 없다고 나온다.

즉, 모든 파일의 변경 사항을 저장했다는 뜻이다.

현재 git 상태를 확인하려면 이 명령어를 입력하면된다.

4) git log

내가 저장한 커밋 내역을 보고싶을때는 아래와같은 명령어를 사용한다.

git log

git log에서 빠져나오고 싶다면 키보드에서 q를 입력하면 된다.

(안된다면 한글(ㅂ)로 되어있을 가능성이 있다. 영어로 바꿔야한다.)

5) git branch, git switch

원본 파일을 수정하지 않고 새로운곳에 코드를짜고싶을때는 branch를 이용한다.

git 으로 코드를 관리하면 해당 프로젝트를 통째로 복사하지 않아도 알아서 복사본을 만들어준다.

이것이 바로 브랜치(branch)이다.

이때 브랜치명은 내가 개발하려는 기능과 관련이 있는것이 좋다.

git branch <브랜치명>

Ex) feature/login

이후 만든 브랜치로 이동을 해줘야하는데

git switch <브랜치명> 혹은 git checkout <브랜치명> 를 사용한다.

위 명령어를 작성하면Switched to branch ‘feature/login’ 이라는 글이 보이는데. 즉, 현재 feature/login 브랜치로 변경되었다.

이는 기존의 master 브랜치에 있던 코드를 그대로 복사하여 새로운 곳에서 코드를 짤 수 있다는 뜻이다.

그럼 feature/login 브랜치에서 코드를 변경한 후 git add & git commit 명령어도 입력해보자.

6) git merge

다른 브랜치에서 만든 코드를 원본에 합치고 싶을때 git merge 를 사용한다.

우리는 feature/login 이라는 브랜치에서 코드를 새로 작성하였다.

안전하게 다른 브랜치에서 기능을 개발하였으니 이제는 원본 코드로 합치면 될 것 같은데

이때 사용하는 명령어가 바로 git merge 이다.

merge는 합치다라는 뜻이다.

방법은 다음과 같다


  1. 원본 브랜치(master)로 이동한다.

    git switch master
    
  2. git merge <새롭게 기능을 개발한 브랜치명> 명령어를 입력한다.

    git merge login
    
  3. 원본 브랜치로 코드가 합쳐진다.

7) git stash

코드 저장은 no! 하지만 임시저장하고 싶을때는 git stash 를 사용한다.

코드 변경 후 저장을 하지 않고, 즉 git addgit commit 으로 저장하지 않으면, git switch 명령어가 동작하지 않을 때가 있다.

(정확히는 항상 그런 것은 아니고, 이동하는 브랜치의 코드내가 변경한 코드에서 겹치는 부분이 있을 때 이동이 안된다!)

즉, git addgit commit 후에 브랜치를 변경(git switch)해야 한다.

  • 예시 상황

    1. 새로운 브랜치(test)를 생성한다.

    2. 기존 브랜치 (main)에서 코드를 변경 및 커밋한다. (협력하는 경우 있을 수 있는 상황입니다.)

    3. 새로운 브랜치(test)에서 main 브랜치에서 변경한 것과 같은 위치의 코드를 변경한다.

    4. git switch 혹은 git checkout으로 main 이동해본다.

    5. 브랜치 이동 안됨

      Your local changes to the following files would be overwritten by checkout: 
      index.html
      Please commit your changes or stash them before you switch branches.
      

그런데 급하게 브랜치를 이동하고 싶으면서, 아직 코드 저장을 하기에는 개발을 마무리하지 못한 상황이라면 어떻게 할까요?

바로 이때 git stash라는 명령어를 사용할 수 있다.

git stash 명령어의 경우 임시로 코드를 저장해주는 역할을 한다.

그리고 아래와같이 입력해보자.

git stash -u -m "index.html 기능 개발 중"
  • -uuntracked 파일들의 변경사항도 모두 저장하겠다는 뜻이다. untracked 파일의 예시는 새로 만든 파일이 있을 수 있다.
  • -m커밋 메세지처럼 어떤 기능을 개발하는 중이었는지 간단하게 메세지를 작성할 수 있게 하는 옵션이다.

그리고 git stash list 명령어를 입력하면 임시로 저장된 부분을 확인할 수 있다. q 를 눌러 빠져나올 수 있다.


© 2023. All rights reserved.

by SoftyChoo