본문 바로가기
Git

Git - 기초를 위한 Git 명령어 사용법 [ 기초 마스터 클래스 ]

by Classic Master 2023. 12. 1.
728x90

여러 사람들과 개발을 하기위해서 자주 사용되는 Git, Github를 알아 보겠습니다.

협업을 할 때 편리하게 자료를 공유하고, 메모를 할 수 있기 떄문에 실무에서 자주 사용되어 지고 있습니다.

 

Git 그리고 Github ?

Git

  • 로컬에서 작업하며 버전을 추적하고 변경 이력을 관리하는 도구입니다
  • 로컬에서 개별적으로 버전을 추적하고 변경 이력을 관리한다. 시간에 따른 버전 변화와 차원의 형상을 가집니다.

GitHub

  • Git으로 관리하는 프로젝트를 온라인 상에서 공유하고 협업할 수 있도록 하는 코드 공유 및 협업 서비스.
  • GitHub은 Git의 원격 저장소를 온라인으로 호스팅하여 협업을 간편하게 만들어주는 역할을 한다.
  • 온라인 Git 저장소를 제공하여 모든 업로드와 다운로드를 커밋 단위로 주고 받습니다
  • 프로젝트 구성원들이 함께 작업하고 소프트웨어를 개발할 수 있도록 돕습니다
  • 오픈소스 프로젝트들이 전 세계적으로 GitHub에서 공유되고 협업되는 플랫폼으로 널리 사용되고있습니다.

Git 영역

워킹 디렉터리 (Working Directory)

  • 소스 코드, 이미지, 구성 파일 등 프로젝트에 필요한 모든 파일과 디렉터리가 여기에 위치하며, 개발자는 이 디렉터리에서 파일을 수정하고 새로운 파일을 추가합니다.

스테이징 영역 (Staging Area)

  • git add . 명령어를 사용하여 워킹 디렉터리에서 변경된 파일을 스테이징 영역에 추가할 수 있습니다. 이 영역의 파일들이 다음 커밋에서 기록될 대상으로 선택됩니다.

Git 디렉터리 (Git Directory)

  • 디렉터리에는 저장소의 설정, 커밋 로그, 브랜치 정보, 특정 버전의 파일 스냅샷 등이 포함되어 있습니다. 실제로 Git 디렉터리에 저장된 정보를 기반으로 커밋 히스토리를 추적하고 작업을 관리합니다. 이 디렉터리가 있어야만 Git은 프로젝트의 상태를 파악하고 이력을 기록할 수 있습니다.

Git 명령어 설정 및 프로젝트 Repository 생성

Git 명령어 최조 설정

먼저 주소와 아이디를 등록하셔야합니다.

이름 및 이메일 설정
git config --global user.name "username"
git config --global user.email "username@gmail.com"

확인
git config --global user.name
git config --global user.email

브랜치명 변경
git config --global init.defaultBranch main
git config --global init.defaultBranch

Git 최초 디렉토리 설정

git init

  • 현재 작업 중인 폴더를 Git 저장소로 초기화한다. 이 명령을 실행하면 해당 폴더 내에 .git 디렉토리가 생성되며, Git의 관리 하에 들어간다.

git add .

git add (파일명)

  •  현재 폴더 내의 모든 파일을 Git의 Staging Area로 추가한다. .은 현재 폴더를 의미하며, 변경된 모든 파일을 Staging Area에 올린다.

git commit -m "commit message"

  • Staging Area에 올라간 파일들을 하나의 버전으로 커밋한다. -m은 커밋 메시지를 직접 작성하는 옵션으로, 해당 메시지는 이후 변경 이력을 파악하는 데 사용된다.

git remote add origin repository 주소

  • 로컬 저장소를 원격 저장소와 연결한다. origin이라는 이름으로 원격 저장소의 주소를 등록한다.
  • ex ) git remote add orgin repository https://github.com/id/Kotlin.git

git push -u origin master

  • 로컬 저장소의 변경사항을 원격 저장소로 푸시한다. -u 옵션은 푸시할 때마다 git push origin master라고 입력하지 않아도 되도록 설정하는데, 이는 향후에 간단하게 git push만 입력해도 된다는 의미이다. origin은 앞서 등록한 원격 저장소의 이름이고, master는 푸시할 브랜치를 나타낸다.

Git 변경 사항 커밋하기

새로운 변경 사항이 있을 때는 이미 Git 저장소가 초기화되어 있고 원격 저장소가 등록되어 있다고 가정합니다. 따라서 git init과 git remote add origin repository주소는 이미 수행되었다고 가정하고, 새로운 변경사항을 커밋하고 푸시하는 단계를 설명합니다.

git add .

  • 현재 폴더 내의 모든 변경된 파일을 Staging Area로 추가합니다. .은 현재 폴더를 의미하며, 변경된 모든 파일을 Staging Area에 올립니다.

git commit -m "commit message"

  • Staging Area에 올라간 파일들을 하나의 커밋으로 만듭니다. -m 옵션을 사용하여 커밋 메시지를 작성합니다. 이 메시지는 변경 이력을 나타내는데 사용됩니다.

git push

  • 로컬 저장소의 변경사항을 원격 저장소로 푸시합니다. -u 옵션은 이전 설명에서 처럼 설정되어 있다면 생략할 수 있습니다. 원격 저장소의 이름은 이미 origin으로 설정되어 있습니다.

git log

  • 지금 까지 저장한 commit 내역을 보여주며, commit 메세지로 코드 변경 시점을 확인 가능하며, log 내역에서 빠져 나올때는 q 로 빠져 나옵니다.

이렇게 하면 새로운 변경 사항이 로컬에서 커밋되어 원격 저장소로 푸시되게 됩니다. 초기 설정 작업(init 및 원격 저장소 등록)은 한 번만 수행하면 되기 때문에 이후 변경 사항을 추가하고 커밋하며 푸시하는 과정은 간단합니다.

 


Git 이전으로 돌아가기

git reset --hard (돌아갈 커밋 해시)

  • 현재 브랜치의 헤드를 이전 버전으로 이동시키면서 커밋 이력을 변경한다. 소스 코드와 커밋 이력을 모두 이전 상태로 되돌린다.

git reset --soft HEAD^

  • 최근 커밋만 취소됨.

git reset --mixed HEAD^

  • 최근 커밋 + 스테이징도 취소됨(default)

git reset --hard HEAD^

  • 최근 커밋 + 스테이징 취소되고 파일도 삭제됨(복구 못함)

git revert (수정할 커밋 해시)

  • 현재의 커밋을 그대로 두면서, 이전 버전의 상태로 돌아간다. 새로운 커밋을 생성하여 이전 상태의 변경 내용을 취소하고, 이를 새로운 이력으로 추가한다.

협업 시 주의사항

  • Reset은 커밋 이력을 변경하므로 원격 저장소에 푸시된 커밋을 reset하면 문제가 발생할 수 있다. 협업 시에는 조심해서 사용해야 하며, 공유된 커밋을 삭제하는 것은 큰 위험이 될 수 있다.
  • Revert는 새로운 커밋을 생성하기 때문에 공유된 커밋을 변경하지 않고 특정 시점의 작업을 수정할 수 있다. 협업 시에는 팀원들과의 소통 후 사용하는 것이 안전하다.

Git 상태 확인하기

저장소 내의 현재 상태를 보여주는 명령어로, 다양한 정보를 제공합니다. 주로 작업 디렉토리와 스테이징 영역(Staging Area)의 변경 사항을 확인하는 데 사용됩니다

 

git status

  • 현재 작업 중인 디렉토리와 Git 저장소의 상태를 간략하게 요약하여 보여줍니다. 수정된 파일, 새로운 파일, 스테이징된 파일 등의 정보를 확인하여 작업 중인 내용을 파악할 때 유용하게 사용됩니다.

git status [파일 또는 디렉터리 경로]

  • 특정 파일이나 디렉터리의 상태만을 확인할 수 있습니다.

git status -s

  • 간략한 형식으로 최근 커밋 이후의 변경 사항을 확인할 수 있습니다.

Git Version 확인하기

git --version

  • Git 버전을 확인하기 위해 사용됩니다. 이 명령어를 실행하면 현재 시스템에 설치된 Git의 버전 정보가 출력됩니다.
반응형

 

728x90
반응형