본문 바로가기
Etc . . .

[Github] Add, Commit, Push 이해하기 (로컬 저장소와 원격 저장소)

by jangThang 2022. 2. 12.
반응형

 Github에 소스코드를 업로드할 때, add / commit / push 명령어를 사용합니다. 이 글에서는 로컬 저장소와 원격 저장소의 관계를 통해, 해당 명령어들이 어떤 의미를 가지는지 알아보겠습니다.

 

[ Contents ]

     

     

    1. Git과 Github

    2022.02.12 - [Etc . . .] - [Github] 세계 최대 형상관리 시스템, 깃과 깃허브 알아보기

     

    [Github] 세계 최대 형상관리 시스템, 깃과 깃허브 알아보기

    [ Contents ] 1. 깃허브(Github) Github: 세계 최대 규모의 Git 호스팅 사이트 (이용자 수: 2800만 명)  마이크로 소프트(MS)에서 인수한 깃허브에서 무료로 소스코드를 저장하고 관리할 수 있습니다. 공개

    star7sss.tistory.com

     Git은 버전 관리 시스템으로, 원격 저장소와 호스팅 해주는 기능을 합니다. Github는 Git의 Hub(허브) 역할로, 온라인 상에 소스코드를 저장해주는 클라우드 서비스를 제공합니다.

     Git을 통해서 버전관리 하고, 깃허브에서 프로젝트 파일을 저장하고 관리합니다.

     

     

     

    2. 로컬 저장소와 원격 저장소

    로컬 저장소(Local Repository): 내 컴퓨터에 저장된 프로젝트 폴더
    원격 저장소(Repository, 레파지토리): 온라인 상에 저장된 프로젝트 폴더

     Git은 오프라인에서도 버전 관리를 지원합니다. 인터넷 없이 내 컴퓨터에서 작업하는 프로젝트도 버전 관리를 받을 수 있습니다.

     

     

    Git의 CLI 버전 / GUI 버전

     내 컴퓨터에 저장한 프로젝트 폴더(로컬 저장소)도 Git을 통해 관리할 수 있습니다. 하지만 컴퓨터에 문제가 생겨 삭제될 위험이 있으며, 다른 사람과의 협업도 어렵습니다.

     

     

    깃허브의 원격저장소(Repository)

      대부분 깃허브와 같은 원격 저장소를 이용하며, 동일하게 버전관리 서비스를 이용받을 수 있습니다. 또한 다른 사람과의 협업과 공유도 쉽습니다.

     

     

     

    3. Add, Commit, Push

    git add .
    git commit -m "주석"
    git push origin master

     깃허브에 업로드할 때마다 사용하는 명령어들입니다. 관습적으로 사용했지만, 왜 한 번에 안 하고 여러 번 나눠서 업로드해야 하는지 궁금했습니다. 느낌상으론 git push "주석" 정도로 한 번에 변경사항을 저장하면 좋을 거 같은데요...

     

     

     이유는 git을 통해 원격 저장소로 저장하는 방식에 있었습니다. 어느 프로젝트든 우리는 내 컴퓨터에서 작업을 합니다. 이때, IDE에서 저장하는 프로젝트 폴더를 '작업공간(Working Directory)'라고 합니다.

     

     

     작업을 마치고 이제 원격 저장소에 업로드하려고 합니다. 우선 업로드할 파일을 git add로 지정해줍니다. 대부분 .을 통해 모든 파일을 갱신하죠.

     git add 명령어를 수행하면, 로컬 저장소(git 폴더)에 업로드할 파일이 지정됩니다.

     

     

     이후 commit 명령을 수행하면, 지정된 파일의 상태가 저장됩니다. 백업해두는 것과 비슷한 복사본이 만들어집니다. 백업본의 이름은 '주석'이 대신합니다.

     

     

     push 명령어는 로컬 저장소에서 commit 된 파일을 업로드해줍니다. 따로 저장할 브랜치(branch)를 지정할 수 있으며, 보통 origin(main) 브랜치를 주로 사용합니다.

     

     지금까지 내 컴퓨터의 프로젝트 폴더에서 깃허브로 업로드하는 과정을 알아봤습니다. 단순히 프로젝트 폴더를 깃허브에 업로드하는 방식이 아니라, 업로드할 파일을 지정하고 백업하는 중간 과정이 있기 때문에 다소 복잡했습니다.

     하지만 잘못 업로드해서 고생하는 것보다는, 이런 안전장치가 마련된 방식이 더 낫겠죠?

    (그런데 왜 매번 협업할 때마다 pull/push하면 오류가.... ㅜㅜ)

     

    star가 되고나서 Tistory

    반응형

    댓글