[Git] 깃허브로 백업하기
원격 저장소와 깃허브
- 지금까지 자신의 컴퓨터에서 작업한 뒤 그 컴퓨터 안에 커밋을 저장하였습니다.
- 이 저장소를 지역저장소(local repository)라고 부릅니다.
- 만약 실수로 지역 저장소를 삭제한다면 그때까지 작업했던 내용이 모두 사라지게 됩니다.
- 이렇게 작업 내용을 지역 저장소에만 저장하는 것은 안전하지 않기 때문에 작업하는 컴퓨터가 아닌 다른 곳에 저장 공간을 마련해야 합니다.
원격 저장소란?
- 깃에서는 지역저장소와 원격 저장소(remote repository)를 연결해서 버전 관리하는 파일들을 쉽게 백업할 수 있습니다.
- 여기서 원격 저장소는 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소를 말합니다.
- 원격 저장소는 지역저장소와 연결되어 있으면서 '백업'과'협업'이라는 중요한 역할을 합니다.
- 원격 저장소를 직접 구축할 수도 있지만 만들고 유지하는 것은 쉽지 않습니다.그래서 인터넷에서 원격 저장소를 제공하는 서비스를 주로 사용합니다.
- 그중에서 깃과 관련해 가장 많이 사용하는 서비스가 바로 깃허브입니다.
깃허브로 할 수 있는 일들
- 원격 저장소에서 깃을 사용할 수 있습니다.
- 깃허브는 깃 사용을 위한 원격 저장소를 제공하는 서비스이기 때문에 따로 깃을 설치하지 않고도 온라인상에서 깃의 버전 관리 기능을 사용할 수 있습니다.
- 지역 저장소를 만들지 않아도 깃허브에 원격 저장소를 만들어 사용할 수 있고,지역저장소가 있다면 원격 저장소와 연결해서 사용할 수도 있습니다.
- 지역 저장소를 백업할 수 있습니다.
- 깃허브에 원격 저장소를 만들고 사용자 컴퓨터의 지역 저장소를 연결한 후 동기화하면 지역 저장소를 인터넷 상에 백업할 수 있습니다.
- 협업 프로젝트에 사용할 수 있습니다.
- 팀 프로젝트를 진행할 때도 이제 깃허브가 기본저장소가 되고 있습니다.
- 원격 저장소이므로 인터넷만 가능하면 누구나 접근할 수 있고, 깃과 깃허브에서 여러 가지 협업도구를 제공하기 때문에 깃허브를 사용하면 여러 명의 팀원이 하나의 프로젝트를 진행하기 쉽습니다.
- 자신의 개발 이력을 남길 수 있습니다.
- 다른 사람의 소스를 살펴볼 수 있고, 오픈소스에 참여할 수도 있습니다.
지역저장소를 원격 저장소에 연결하기
지역 저장소 만들기
1.local-git을 줄인 loc-git이라는 새 디렉토리를 만들고 지역 저장소로 초기화하겠습니다.그리고 디렉토리 안으로 들어가 문서 f1.txt를 만듭니다.
$ git init loc-git
$ cd loc-git
$ vim f1.txt
2.f1.txt를 스테이지에 올린 후 커밋합니다.커밋 메시지는 'add a'라고 하겠습니다.git log명령으로 커밋이 잘 되었는지 확인해 봅니다.
원격 저장소에 연결하기
- 사용자 컴퓨터에 있는 지역 저장소를 깃허브에 있는 원격 저장소와 연결해 보겟습니다.
- '커맨드 라인에서 기존 저장소를 푸시하기' 방법을 사용해서 지역 저장소에 있는 파일을 원격 저장소로 올려보겠습니다.
1.지역 저장소와 원격 저장소를 연결하려면 깃허브의 저장소 주소를 알고 있어야 합니다.
- 웹 브라우저에서 깃허브 저장소에 접속으 깃허브 주소를 복사합니다.
2.저장소 주소를 복사 했다면 터미널 창에 다음과 같이 입력합니다.
$git remote add origin [복사한 주소 붙여넣기]
- 저같은 경우에는 이미 origin 리모트가 있기 때문에 삭제해줘야 합니다.
$ git remote rm origin
- 이 명령은 원격저장소(remote)에 origin을 추가하겠다고 깃에게 알려주는 것입니다.
- 여기서 origin은 깃허브 저장소 주소를 가리킵니다.
- 깃허브 저장소 주소를 그대로 쓰면 너무 길기 때문에 origin이라는 단어로 줄여서 remote에 추가하는 것입니다.
- 이렇게 지역 저장소를 특정 원격 저장소에 연결하는 것은 한 번만 해주면 됩니다.
3.원격 저장소(remote)에 제대로 연결되었는지 확인해 봅니다.
$ git remote -v
원격 저장소에 올리기 및 내려 받기
-
지역 저장소와 원격 저장소를 연결하였으니 이제부터 지역 저장소의 소스를 원격 저장소에 올릴 수도 있고,원격 저장소에 있는 소스를 지역 저장소로 내려받을 수 있습니다.
-
이때 지역 저장소의 소스를 원격 저장소로 올리는 것을 '푸쉬(push)'라고 하고, 원격 저장소에서 지역 저장소로 내려받는 것을 '풀(pull)'이라고 합니다.
원격 저장소에 파일 올리기
- 먼저 지역 저장소의 커미을 원격 저장소로 보내는 푸쉬를 알아보겠습니다.
지역 저장소와 원격 저장소를 연결하였으니 이제부터 지역 저장소의 소스를 원격 저장소에 올릴 수도 있고,원격 저장소에 있는 소스를 지역 저장소로 내려받을 수 있습니다.
이때 지역 저장소의 소스를 원격 저장소로 올리는 것을 '푸쉬(push)'라고 하고, 원격 저장소에서 지역 저장소로 내려받는 것을 '풀(pull)'이라고 합니다.
1.지역 저장소의 브랜치를 origin,즉, 원격 저장소의 master 브랜치로 푸쉬하는 명령입니다.
- 여기서 -u 옵션은 지역 저장소의 브랜치를 원격 저장소의 master브랜치에 연결하기 위한 것으로 처음에 한번만 사용하면 됩니다.
$ git push -u origin master
2.터미널 창에서 푸쉬가 진행되는 것을 볼 수 있습니다.
- 여기서 로그인 창이 나타나면 로그인을 해줘야합니다.
3.푸쉬가 끝났다는 것은 지역 저장소의 커밋이 원격 저장소로 올라갔다는 것입니다.
- 푸쉬가 끝났으면 깃허브 저장소가 열려있는 웹 브라우저에가보면 지역 저장소에 있던 f1.txt파일이 원격 저장소로 올라와 있습니다.
4.한번이라도 지역 저장소와 원격 저장소를 연결해서 푸쉬했다면 그 다음 부터는 더 간단하게 푸쉬할 수 있습니다.
- 지역 저장소에서 또 다른 커밋을 만들고 나서 푸쉬해 보겠습니다.
$ vim f1.txt
- 원래 다음 에 영문자 'b'를 추가하고 저장 및 종료합니다.
- 다음 명령을 사용해 스테이징과 커밋을 한꺼번에 실행합니다.
- git commit 명령에서 -am 은 스테이징 옵션(-a)과 메시지 옵션(-m)을 함께 쓴 것으로 최소한 한 번이라도 커밋한 파일이어야 사용할 수 있습니다.
- 커밋 메시지는 'add b'라고 하겠습니다.
$ git commit -am "add b"
6.지역 저장소에 새로운 커밋이 만들어 졌으니 원격 저장소에 푸쉬할 수 있습니다.
- 이미 앞에서 지역 저장소의 브랜치와 origin의 master 브랜치를 연결했기 때문에 다시 파일을 푸쉬할 떄는 git push라고 입력해줍니다.
$ git push
- 방금 만든 커밋이 원격 저장소로 푸쉬됩니다.
7.웹 브라우저에서 깃허브 저장소 화면을 새로고침해봅니다.
- 파일목록에서 파일 이름 오른쪽에 최신 커밋 메시지가 나타납니다.
원격 저장소에서 파일 내려받기 -git pull
- 원격 저장소에 있는 소스 파일을 다른 사용자가 수정했거나 깃허브 사이트에서 직접 커밋하면 지역 저장소와 차이가 생깁니다.
- 이럴 때는 원격 저장소와 지역 저장소의 상태를 같게 만들기 위해 원격 저장소의 소스를 지역 저장소로 가져옵니다.
- 이것을 '풀(pull)한다'라고 합니다.
1.앞에서 loc-git 지역 저장소를 원격 저장소에 연결한 후에 푸쉬했었습니다.
- 그리고 깃허브 사이트에서 f2.txt라는 파일을 새로 만들었습니다.
- 터미널 창에서 loc-git 디렉토리로 이동한 후 ls 명령을 사용해 디렉토리 안의 내용을 혹인해 봅니다.
- 지역 저장소에서 만든 f1.txt파일만 있을겁니다.
2.다음 명령은 origin(원격 저장소)의 내용을 master 브랜치로 가져온다는 뜻입니다.
$ git pull origin master
3.git log 명령으로 커밋 로그를 확인해 봅니다.
- 깃허브 사이트에서 만들었던 'Create f2.txt'라는 커밋이 지역 저장소 커밋 로그로 나타나는 것을 확인할 수 있습니다.
Author And Source
이 문제에 관하여([Git] 깃허브로 백업하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jyyoun1022/Git-깃허브로-백업하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)