컴퓨터/기타

Git - 깃허브에 데이터를 업로드, 다운로드하자 (초보자 ver)

달서비 2022. 12. 12. 17:22

최근에 프로젝트를 하면서 깃허브에 협업하게 되었습니다. 혼자 했을 때는 폴더에 놓고 다른 폴더를 통하여 이전 소스 코드에 대한 버전 관리만 하면 되었는데 여러명에게서 작업하는 경우에 결국 하나의 컴퓨터에 합해야 한다는 문제가 있고 깃허브를 이용하여 해당 문제를 해결하였습니다. 깃허브에 수정한 데이터를 올리는 방법을 이야기하려 합니다.

 

깃허브에 데이터를 업로드 및 다운로드 방법

표를 통한 간단한 정리

git clone https://github.com/kmsbio/kmsbio #다른 리포지터리의 데이터를 가져온다
#========================================
git add a.txt #a.txt 파일을 추가한다
git commit -m 'hello' #hello라는 메시지와 함께 추가한 파일을 git의 인덱스에 기록한다.
git pull origin master #다른 사람이 바꾸어 놓았던 원격저장소의 공간을 저장한다.
git push origin master #git의 인덱스에 기록된 사항을 원격저장소로 저장한다.

이외에도 다양한 기능을 가지고 있지만 최소한으로 clone, add, commit, pull, push 다섯 가지 사항만 알고 있으면 기본적인 데이터 업로드를 할 수 있습니다.

 

데이터를 가져오기 (clone)

git clone https://github.com/kmsbio/kmsbio #HTTP 방식으로 clone
git clone git@github.com:kmsbio/kmsbio.git #SSH 방식으로 clone

깃허브에 기존에 저장되어있는 데이터를 가져오는 clone 명령어 입니다. clone으로 가져올 수 있는 방법은 크게 두 가지가 있는데 HTTP 방식과 SSH 방식입니다. 두 가지 방식을 자유롭게 사용하여 데이터를 가져올 수 있습니다.

 

데이터를 추가하기 (add)

git add a.txt #a.txt 파일을 추가한다.
git add -a #모든 디렉토리에 데이터 변동사항을 추가한다.
git add . #현재 디렉토리에 있는 모든 데이터를 추가한다.

자신이 전송할 데이터를 추가하는 방법이 add 명령어입니다. add 명령어를 통하여 스테이징에 데이터를 추가할 수 있습니다. -a 태그를 추가하는 경우에 모든 데이터의 변동사항을 추가합니다. 또한 .을 추가하면 현재 디렉토리에 있는 데이터만 추가합니다. 만약에 add로 추가한 데이터를 취소하고 싶으면 reset 명령어를 사용하면 됩니다. 해당 방법은 아래로 별첨합니다.

git reset HEAD a.txt #a.txt a.txt파일의 add를 취소합니다
git reset HEAD # 전체 취소

추가되어있는 데이터 상태를 보고 싶은 경우 아래의 명령어를 입력하면 됩니다.

git status

 

로컬 저장소에 저장하기 (commit)

git commit -m 'commit message'

commit 명령어는 추가한 스테이징에 추가된 데이터들을 바탕으로 로컬 저장소에 수정사항을 저장합니다. 저장을 할 때 현재 버전에 대한 메세지를 남겨야합니다.  아래 링크는 좋은 메세지를 작성하기 위한 방법을 별첨하였습니다.

 

https://meetup.toast.com/posts/106

 

좋은 git 커밋 메시지를 작성하기 위한 7가지 약속 : NHN Cloud Meetup

git커밋

meetup.toast.com

 

원격 저장소에 수정된 데이터 가져오기 (pull)

git pull origin master

add, commit 명령어는 자신이 하였던 진행 사항을 로컬 저장소에 저장하는 명령어입니다. 그럼 다른 사람이 수정하여 업데이트된 사항은 어떻게 가져올까요? 그 경우에는 pull 명령어를 사용합니다. 다른 사람들이 원격 저장소에 수정한 코드를 로컬 저장소로 보내는 명령어가 pull입니다. 해당 명령어 입력 후 작업을 진행을 하는 것이 가장 좋습니다.

 

원격 저장소에 수정된 데이터 보내기 (push)

git push origin master

pull과 반대로 commit한 데이터를 인터넷으로 보내는 명령어는 push입니다. 해당 명령어는 최종단계로 사용하는 명령어입니다. add로 스테이징에 추가한 데이터를 commit명령어로 로컬 저장소에 저장을 합니다. 그리고 원격 저장소로 보내주는 명령어입니다. push 전에는 보낼 정보들을 확인 후 보내야 합니다.