Git 사용법

Han's·2023년 6월 27일
0
post-thumbnail

저장소 생성하기(필수)

  • git init으로 Git 저장소 생성

    ※ 저장소가 생성되었는지 확인하려면 ls -a를 입력하여 .git 디렉토리가 존재하는지 확인하면 됩니다.

명령어

  1. git status
    Git의 상태를 출력합니다. (예시를 보여주기 위해 미리 파일을 생성했습니다.)
    현재는 파일들이 Untracked 상태이기 때문에 Git 이 파일을 추적할 수 있도록 Staging Area에 추가해야 합니다.
    Staging Area는 작업 디렉토리에서 변경된 파일 중에서 다음 커밋에 포함될 파일들의 목록을 추적하는 공간입니다.


  1. git add
    작업 디렉토리 상의 변경 내용을 스테이징 영역(Staging Area)에 추가하는 명령어입니다.

    git add 파일명을 사용해 원하는 파일을 Staging Area에 추가할 수 있습니다.
    git add .을 사용해 모든 파일을 한 번에 추가할 수 있습니다.


  1. git commit
    변경 사항을 새로운 커밋으로 기록하는 명령어입니다. (코드의 변경 사항을 저장하고 버전 기록에 영구적으로 기록하는 작업)
    git commit -m "여기에 원하는 커밋 메시지 입력"을 사용해 커밋을 할 수 있습니다.


  1. git log
    저장소의 커밋 기록을 조회하는 명령어입니다.
    git log -p를 사용하면 자세한 내용을 볼 수 있습니다.


  1. git diff
    저장소에서 변경된 내용을 비교하고 출력하는 명령어입니다. (작업 디렉토리와 이전 커밋, 스테이징 영역과의 차이점을 확인) 주의! 커밋 전에만 확인 할 수 있습니다.
    위와 같이 git diff를 사용해서 이전 커밋과의 다른 점을 볼 수 있습니다.


  1. git branch
    저장소에서 존재하는 브랜치의 목록을 보여주거나, 새로운 브랜치를 생성하거나, 현재 작업 중인 브랜치를 변경하는 등의 작업을 수행하는 명령어입니다.

    git branch를 사용해서 브랜치의 목록을 볼 수 있습니다.

    git branch 브랜치명으로 새로운 브랜치를 생성할 수 있습니다.
    ※ 브랜치를 생성하면 현재 속한 브랜치의 상태를 그대로 복사합니다.

    git branch -d 브랜치명으로 브랜치를 삭제할 수 있습니다.


  1. git checkout
    브랜치를 변경하는 명령어입니다.

    git checkout 브랜치명을 사용해 브랜치를 전환할 수 있습니다.
    위와 같이 newBranch로 현재 브랜치가 변경된 것을 확인할 수 있습니다.


  1. git merge
    브랜치를 병합하는 명령어입니다. 두 개의 다른 브랜치를 하나로 합치는 작업을 수행할 수 있습니다.
    ‼️ 주의 ‼️ 'master' 브랜치에 'newBranch'를 병합하려면 현재 위치한 브랜치가 'master' 브랜치어야 합니다.
    여기서 저장하게 되면 아래와 같이 표시가 됩니다.
    그래프로 쉽게 보면
    이렇게 병합된 것을 볼 수 있습니다!


  1. git remote
    로컬 저장소와 원격 저장소 간의 연결을 관리하는 명령어입니다. 원격 저장소를 추가, 삭제, 이름 변경 및 관리할 수 있습니다.

    git remote -v로 현재 연결된 원격 저장소를 살펴보면
    원격 저장소와 연결이 안 되어 있습니다.

    ❗️GitHub 레포지토리에 연결하는 방법
    git remote add [이름] [레포지토리 주소]
    연결한 후 git remote -v로 연결을 확인하면 master 브랜치에 연결된 것을 확인할 수 있습니다.


  1. git remote remove [이름]
    원격 저장소를 삭제하는 명령어입니다.


  1. git branch -M [브랜치명]
    Git에서 브랜치의 이름을 변경하는 명령어입니다. 브랜치의 이름을 강제로 변경할 때 사용됩니다.
    브랜치 이름이 'master'에서 'main'으로 바뀐 것을 볼 수 있습니다.


  1. git push
    ❗️ 로컬 저장소의 커밋을 원격 저장소로 전송하는 명령어입니다. 로컬 저장소에서 작업한 변경 사항을 원격 저장소에 업로드할 수 있습니다. -u 옵션은 푸시 한 브랜치를 원격 저장소의 브랜치와 연결하는 역할을 합니다.

    git push [이름] [브랜치명]을 사용하여 원격 저장소에 푸시 할 수 있습디다.
    이렇게 -u 옵션을 사용하여 푸시한 후 부터는 git push를 사용하여 main 브랜치에 간단하게 푸시할 수 있습니다.


  1. git pull
    원격 레포지토리의 메인 브랜치를 동기화하는 명령어입니다.
    git pull origin main을 사용하여 메인 브랜치로부터 최신 커밋을 가져와 로컬 브랜치를 업데이트합니다.




Git 명령어(심화)

  • git log --branches --decorate --graph
    커밋 로그를 브랜치 그래프 형태로 보여주는 명령어입니다. 이 명령어를 실행하면 Git 저장소의 브랜치들과 각각의 커밋 로그를 아래와 같이 시각적으로 보기 쉬운 형태로 출력합니다.
    그래프 해석
  • 'newBranch' 브랜치는 최신 커밋이 '4'이고, '2'라는 커밋에서 파생되었다.
  • 'master' 브랜치는 최신 커밋이 '5'이고, 이전의 커밋이 '2'
  • 즉, 'master'와'newBranch'의 공통의 커밋은 '2'

    이렇게 커밋 로그를 그래프를 통해 알 수 있습니다.

❗️ .gitignore

모든 코드를 원격 저장소에 저장하는 것은 매우 매우 위험한 행동입니다. 가령 API 키값 또는 외부로 알려져서 안되는 내용은 원격 저장소에 올리게 되면 매우 위험하겠죠? 그래서 이런 것을 막기 위해 gitignore을 사용하는 것입니다.

.gitignore 파일을 생성하는 방법은 여러 가지가 있지만 가장 쉬운 방법을 설명드리겠습니다.

프로젝트를 진행하는 파일의 디렉토리로 이동하셔서 아래의 명령어를 입력한 후

touch .gitignore

ls -a 명령어를 입력하여 파일들의 리스트를 출력해 보시면
파일 들 중에 .gitignore 파일이 생성된 것을 확인할 수 있습니다.

그다음으로 버전 관리를 하지 않을 파일을 설정하기 위해 아래의 명령어를 입력하시면

open .gitignore

비어있는 창이 뜰 것입니다.

여러 가지 방법이 있겠지만 버전 관리를 하지 않을 파일을 직접 언급하는 게 가장 간단한 방법이라서 이 방법으로 하게 된다면
아래와 같이 파일명을 직접 적은 후 저장하면 됩니다.
(제가 제외할 파일은 Store.swift라는 파일이기 때문에 사용한 것입니다.)

이제 .gitignore을 적용시키기 위해 아래의 명령어들을 순서대로 입력하면 .gitignore을 적용시킬 수 있습니다.

git rm -r --cached .
git add .
git commit -m "여기에 커밋 메시지 작성"

추후에 원격 저장소로push하고 난 후 잘 적용되었는지 확인을 꼭 해보셔야 합니다.❗

profile
 iOS Developer

0개의 댓글