끄적끄적 아무기록

Git Status와 Git Add, Commit, Push 기본 개념 및 사용법

by 현생사는갓생지망생
반응형

Local Repository에 변경점을 발생시키고, 연동된 Remote Repository에 소스 코드를 업로드하는 방법

✔︎ git add → git commit → git push

 

‣ Git 설치 및 Remote 저장소 연동에 대한 내용은 이전 포스팅 참고

    📍참고 : Git 설치 및 Remote 저장소 연동

    📍참고 : Git Branch 개념

 

1. Git Status

add, commit 개념을 이해하기 전 status 개념을 알아야 한다

git status 명령은 작업 디렉토리 (Working Directory)와 스테이징 영역 (Staging Area) 의 상태를 확인하기 위해서 사용한다

👉🏻 작업 디렉토리는 아직 Commit 할 준비가 안 된 내가 작업하고 있는 디렉토리, 스테이징 영역은 Commit 할 준비가 된 변경 내용이 Remote 저장소에 올라가기 전에 대기하는 공간

출처 : https://iseunghan.tistory.com/322

 

아래 git status 명령 수행 결과를 보면 크게 3개의 영역으로 구분되어 있다

hyeonsaeng@MacBookPro devops % git status
On branch nodejs
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   server_side_javascript/module.js

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        server_side_javascript/hello.js
        server_side_javascript/webserver.js
  • Changes to be committed: 스테이징 영역에 넘어가 있는 변경 내용
  • Changes not staged for commit: 아직 작업 디렉토리에 있는 변경 내용
  • Untracked files: 아직 작업 디렉토리에 있는 한 번도 Git 저장소가 관리한 적 없는 새로운 파일/변경 내용

git add 명령어를 사용하면 현재 작업 디렉토리에 있는 모든 또는 일부의 변경 내용을 스테이징 영역으로 이동시킬 수 있다

 

2. git add

git add 명령어를 실행하여 작업 디렉토리의 변경 내용을 스테이징 영역에 추가하는 방법엔 여러 가지가 있다

git add . # 현재 디렉토리의 모든 변경 내용을 스테이징 영역에 추가
git add “<File/Directory 경로>” # 특정 파일이나 디렉토리만 스테이징 영역에 추가
git add -A # 작업 디렉토리 내의 모든 변경 내용을 스테이징 영역에 추가

 

git add 왜 필요할까?

만약 팀 프로젝트를 개발한다고 가정할 때,

하나의 기능을 추가할 때마다 Commit을 할 수도 있지만, 하다 보니 3개의 기능을 만들어버렸다고 하자.

이 상황에서 add 명령이 없다면 3가지 기능을 하나의 Commit으로 Remote 저장소에 올려야 하고, 어떤 코드가 어떤 기능인지 알기가 어렵다.

add 명령어를 활용한다면 원하는 파일만 add 하여 따로 Commit이 가능하다!

 

3. git commit : 저장소의 변경 내역을 기록(저장)

Commit 전에는 임시 저장 변경점으로, 정식 Commit 내역에 포함되지 않는다

Commit 해야 해당 Branch에 적용되어 관리 대상이 되며, 다른 Branch로 Checkout 해도 따라오지 않는다

  • git stash 명령어를 통해 Stash에 담아 두고, Commit으로 Stash 저장 내역을 Branch에 적용(저장)
    • git stash : 하던 작업을 임시로 저장 해두고 싶을 때 사용하는 명령. Modified 이면서 Tracked 상태인 파일과 Staging Area에 있는 파일들을 임시로 보관
git commit -m “<Commit Message>”

 

4. git push : Local 저장소에 있는 Commit 을 Remote 저장소로 업로드

Remote (Origin) 저장소를 복제 (Clone) 하여 생성한 Local 저장소의 Branch 내에서 파일을 수정, 삭제, 추가 등 작업을 하더라도 Remote (Origin) 저장소로 Push 하기 전까지는 Remote 저장소에 아무런 영향을 주지 않는다

Push 할 경우 Remote 저장소, 즉 공동으로 작업하는 프로젝트에 반영되는 것이기 때문에 신중해야 한다

git push <GitLab Repository URL>

 

☝🏻변경점이 현재 내 Local보다 Remote가 더 앞서 있을 경우 Local에서 git pull 하여 Remote와 Sync 맞춰줄 수 있다

 

반응형

블로그의 정보

현생이네

현생사는갓생지망생

활동하기