-
Git3 - CLI (3)Backup생활코딩 Git 2021. 12. 19. 23:59
https://opentutorials.org/course/3841
GIT CLI - Backup - 생활코딩
수업소개 이 수업은 CLI 환경에서 GIT의 정보를 백업하는 방법을 다루고 있습니다. 수업대상 소스코드와 버전을 안전하게 백업하고 싶은 분들에게 필요한 수업입니다. 또 여러 컴퓨터를 옮겨가
opentutorials.org
https://youtube.com/playlist?list=PLuHgQVnccGMBJr3eVXGvYHDvGNcogEy7v
GIT3 - CLI 백업
www.youtube.com
소스코드와 버전을 안전하게 백업하고 싶은 분들에게 필요한 수업입니다. 또 여러 컴퓨터를 옮겨가면서 작업하려고 하는 분들에게도 필요한 수업입니다. 협업을 하고 싶은 분이라면 반드시 경우해야 할 수업입니다.
--------------------------------------------------------------------------------------------------------------------
@1. 수업 소개컴퓨터는 언젠지 몰라도 고장이 난다는 건 확신할 수 있다
이 위협으로 보호하기 위해서 정보를 다른 컴퓨터에 저장해서 한대의 컴퓨터가 고장나도 다른 컴퓨터에 있는 정보를 통해 복구할 수 있어야 한다 --회사라고 생각하면 공감이 된다
이걸 위해 각각의 컴퓨터는 서로 멀리 떨어져 있을수록 좋다
수업은 순수한 git의 기능을 이용해서 백업을 해볼거다
근데 그 전에 이거 몰라도
이런 애들이 있다.
git은 버전 정보를 .git이라는 디렉토리에 보관한다
이걸 포함한 프로젝트 전체를 파일 저장 서비스에 올려놓으면 완벽한 백업이 된다
이런 간단한 것조차 하고 있지 않다면 현명하지 못한거라고 생각합니다.
하고 있지 않다면 학습을 중지하고 간편하게 할 수 있는 백업부터 하시길 바랍니다. 이미 늦었을지도 몰라요
백업을 하는건 두가지 방법이 있다.
- 자유롭지만 어려운 방법 : 직접 백업 서버를 장만, 한대 컴퓨터를 장만해서 나에게 최대한 멀리 두고 인터넷에 연결, 이 컴퓨터를 항상 켜야 하고 이 컴퓨터가 고장나지 않았는지 예의주시, git을 설치, 작업용 컴퓨터와 백업용 컴퓨터가 인터넷으로 직접 연결해서 서로 교신할 수 있도록 여러가지 조치, 아무나 이 컴퓨터에 접속하지 못하도록 여러가지 보안조치를 겹겹으로 쌓아둬야함. 가치있는 일이지만 초심자에겐 너무 어렵다.
- 제한적이지만 쉬운 방법
인터넷에 연결된 컴퓨터 한대 한대를 host라고 부름
인터넷 서비스 중엔 hosting이라는 이름을 붙이고 있는 서비스들이 있는데
이런 서비스들은 인터넷에 연결돼서 원격으로 사용할 수 있는 서버를 임대해주는 사업들을 호스팅이라고 한다.
git hosting이란, 여러분이 작업하고 있는 로컬저장소의 버전을 업로드할 원격 저장소를 임대해주는 비즈니스
이걸 이용하면 여러분은 간편하게 특별한 지식 없이도 백업 서버인 원격 저장소를 운영할 수 있다.
수업은 이 깃호스팅을 이용해서 원격 저장소를 이용하는 법을 살펴볼 것
더 안전
여러컴퓨터를 옮겨다니면서 작업을 하는 경우에도 우아하게 자신의 프로젝트에 매진할 수 있다
이런 상태에 충분히 익숙해지고 나면 궁극의 가능성인 협업이 가능
--------------------------------------------------------------------------------------------------------------------
@2. 수업의 목표와 용어정리우리가 백업을 하기 위해선 컴퓨터가 최소 2대는 필요함
Local Repo 지역 저장소 : 실제 작업해서 버전을 생성하는 컴퓨터
Remote Repo 원격 저장소 : 업로드해서 지역저장소와 똑같은 상태를 유지하는 컴퓨터에 설치돼 있는 저장소
두개를 연결시킨 다음에 작업이 끝나면
push : 이걸로 두개의 저장소가 같은 상태를 달성할 수 있어
clone : 백업은 복원도 할 수 있어야 함. 복원은 회사말고 집 등 다른 컴퓨터에도 할 수 있는 거니 편리함이 있다.
집, 회사, 원격 저장소가 같은 상태가 됨.
pull : 회사 -> 원격 저장소 하면 둘은 같은데 집은 아직 안같다. 이때 집에서 pull하면 원격저장소에서 지역 저장소로 버전을 다운로드가 되고 세개의 저장소가 완전히 똑같은 상태가 된다. download대신에 땡겨온다는 뜻에서 pull이라는 표현을 사용함. 작업하고 또 push. 회사가서는 또 pull, 작업하고, push
git을 통해 백업을 했을 때의 효과 : 재난이 일어났을 때 말고도
세련되고 안전하게 작업을 할 수 있다(작업 이동성 극대화)
--------------------------------------------------------------------------------------------------------------------
@3. git hosting 선택백업의 중심은 원격 저장소, 이걸 마련해야함, 직접은 어려운 일, 제공해주는 서비스를 이용할 것.(=Git hosting)
git hosting 으로 검색해서 찾음
깃의 공식 홈페이지에서 가이드하는 비교자료가 있다
github는 전 세계의 수많은 오픈소스들이 만들어지고 있는 오픈소스의 성지
이 사이트 쓸 것.
gitlab이라는 서비스도 있음.
Framework is open-source? : 서비스 자체가 오픈소스라서 여러분의 서버에다가 직접 설치할 수 있느냐
Open-source repositories : 많은 git hosting들이 오픈소스 프로젝트에 대해서는 과금을 하지 않음.
Space : 용량
Free private repositories : 이게 중요, 비공개 저장소를 무료로 제공하느냐 라는 부분에서 깃헙과 깃랩이 다름
또 깃랩은 사내에다 구축해야하는 경우에 그 오픈소스를 다운로드 받아서 설치하면 되기 때문에 아주 장점이 많은 서비스다.
둘다 쓸 것 둘다 repo만들어보면 다른애들에서도 만들수 있을 것이다
--------------------------------------------------------------------------------------------------------------------
@4. 저장소 생성가입해서 로그인
하려는건 저장소를 만들거다
깃허브New repository, 깃랩New project
를 이용해서 저장소를 만든다
Public : 오픈소스 프로젝트, 여러분의 소스코드나 문서를 누구나 볼 수 있다.
Private : 비공개 저장소, 나와 내가 등록한 동료들만, 깃헙돈내야함 깃랩무료
Internal : 로그인된애만볼수있어
--------------------------------------------------------------------------------------------------------------------
@5. 공부의 방향앞으로
(1)
지역저장소에서 하다가 깃호스팅을 통해 비어있는 저장소를 만듦.
: 어떻게 하면 지역저장소와 원격저장소를 연결할 수 있지?
(2)
원격저장소가 세팅이되면 새로운 컴퓨터에 가서 원격저장소에 있는 내용을 복제해서 새로운 컴퓨터에 똑같은 저장소를 구성하고 싶다.
: 원격저장소에서 지역저장소로 복제하는 방법을 배워야 함
저장소들간에 서로 버전을 주고받기 위해선 통신을 해야해
통신방법은 크게 두가지
HTTP
SSH
이게 통신방법이구나
SSH는 보안적으로 훨씬 강력, 훨씬 편리, 배워야될 게 꽤 많다
HTTP를 할 것. 불편할 수 있고 보안적으로 불편하지만 배울 필요가 없다.
HTTP를 통해서 저장소들간에 통신하는 법을 배울 것이다.
쓰다보면 SSH가 필요해지는 걸 스스로 안다. 그때 공부하면 됨. ▽그래봤자 ssh key gen 그거 아냐?
--------------------------------------------------------------------------------------------------------------------
@6. 원격저장소와 연결내 지역저장소를 HTTP방식을 이용해서 원격저장소로 연결하는 방법
(생활코딩 ssh로 검색하면 뭐가 또 나와)
연결을 해야 통신을 하지
깃헙 저장소 만들고 첫 화면
이런거 써있잖아 아래보면
이게 있다. 이게 우리의 관심사 앞으로 이 얘길 할 것.
해석 : 푸시 이미존재하고있는저장소 커맨드라인으로
깃의 명령어 중에 원격저장소와 관련된건 remote
git remote
원격 저장소를 추가해야하는니까 add
git remote add
그 뒤에
이게 원격 저장소의 주소다. HTTPS로 된거
git remote add https://~~
이 명령이 우리의 지역저장소에 원격저장소인 이 주소에 해당되는 저장소를 연결시키는 것.
깃랩도 똑같아
(1)원격 저장소를 다룰일이 많아서 그때마다 주소를 기억하기 힘들다
(2)하나의 지역저장소에서는 여러개의 원격 저장소가 연결돼있을 수 있다.
내 지역을 A에도 올리고 B에도 올리고 그럴수 있잖아
=>각각의 원격 저장소마다 별명을 붙여서 여러분이 쉽게 그 원격 저장소의 이름을 부를 수 있게 함. add 뒤에다가
git remote add 별명 https://
기본적인 원격저장소는 origin이라는 이름을 사용하도록 약속돼있고 관습적으로 저 이름을 씀.
옴메..................origin의 정체를 알아버렸다
원격저장소고, 그냥 별명이구나
git remote add origin https://~~
원격 저장소 잘 연결됐는지 확인하는 법
git remote
주소까지 보려면
git remove -v
fetch push 이런건 뭔지 설명 안함
이젠 작업한 내용을 원격 저장소로 업로드 해야겠지
그때 쓰는 명령이 push
--------------------------------------------------------------------------------------------------------------------
@7. push연결은 했어
우주선과 우주왕복선의 궤도를 정했다
처음으로 도킹을 하는 순간
(뭔말이야?)
git 엔터 하면
뭐 많이 나오는데 저기서 collaborate카테고리에 push가 있지만 백업도 마찬가지다.
git push만 하면 돼 우리 지역저장소는 원격저장소에 연결이 돼 있는 상태
쳐보면 뭔가 에러같은게 나오는데
이건 처음에 딱 한번만 설정해주면 된다
저걸 그대로 카피해서 붙여넣기, 엔터 하면 됨
꼼꼼하게 설명하면 어렵고
우리의 지역저장소는 여러개의 원격저장소와 연결될 수 있는데, 그 중에 어떤 원격 저장소와 기본적으로 연결시킬 것인가를 세팅.
--set-upstream 이라고 하고 origin을 추가하면
다음부터 git push라고만 입력하면 origin의 master라고 하는 브랜치로 업로드가 된다.
엔터를 치면
사용자의 아이디를 물어봄
이건 원격저장소 입장에서는 push가 들어오고 있는데 신뢰할 수가 없다.
인증을 요구함.
깃허브의 아이디와 비밀번호를 입력하기
하면 뭐라뭐라 나오고 완료
깃헙가면 파일 올라간 걸 확인할 수 있고 파일내용 확인, commits도 온라인을 통해 확인 가능
저장하고 버전만들고 push
저장하고 버전만들고 push
반복
으로 원격저장소에 백업이 가능
이미 등록을 해놨을 때 git push만 친 경우
--------------------------------------------------------------------------------------------------------------------
@8. 복제지금까지 한 것
백업을 할 수 있으면 복원을 할 수 있어야 함
이걸 할 수 있으면 여러대의 컴퓨터에 같은 소스코드를 유지할 수 있다.
이동하면서 작업하는데 굉장한 편리함
git쳐보면
저장소를 만드는 방법이 2개 있어
init 최초로 저장소 생성
clone 이미 있는 거로부터 복제
시~작
1.
주소를 복사
2. git clone 붙여넣기
이렇게 치면 현재 디렉토리에 my-repo라고 하는 디렉토리가 생성되도록 약속 돼 있음
다른 디렉토리를 만들고 싶으면git clone 붙여넣기 폴더명 하면됨
이러면 mydir이라는 폴더가 생기는 것
--------------------------------------------------------------------------------------------------------------------
@9. pullpush의 반대, 땡겨온다
같은 컴에 두개의 디렉토리에 똑같은 원격 저장소를 연결해놨다
하나에서 작업하고 푸쉬하고
이제 동기화 시켜야하니까
다른 하나에서 풀 하기
git pull
하면 끝
진짜 HTTP로 하면 깃허브 아이디비번 계속 입력해야되네
우리가 작업할 땐 언제나
pull먼저
작업하고 커밋하고
push
--------------------------------------------------------------------------------------------------------------------
@10. 오픈소스깃 홈페이지에 보면 깃의 소스코드를 다운받는 페이지가 있다
그럼 깃허브로 간다
우리가 쓰고 있는 깃이
깃으로 버전관리돼서 깃허브라는 사이트를 통해서 사람들이 공유를 협업을 하고 있다.
commit : 53000의 버전,
contributors : 커밋할 수 있는 권한이 있는 사람이 1230명
코드를 다운로드 받아서 열어보는 방법
clone
Download ZIP
깃으로 깃의 소스코드를 받는 장면
오픈소스라는건 개발자 커뮤니티에서 중요한 역할을 하고 있다.
많은 오픈소스들이 깃으로 만들어지고 있고, 그 중에 수 많은 오픈소스가 깃허브나 깃랩과 같은 사이트를 통해 호스팅되고있다. 여러분은 그 수많은 오픈소스들을 다룰 수 있는 기초적이고 중요한 준비가 끝났다
--------------------------------------------------------------------------------------------------------------------
@11. 수업을 마치며깃은 모든 저장소가 소스코드 뿐만 아니라 버전에 대한 정보까지 갖고 있다.
뭐 하나 컴퓨터 부셔져도 복구된다. 마치 블럭체인처럼
이런 분산화된 특성 덕분에 깃은 버전관리시장의 지배자가 됐다
(1)
인증과 관련해서 원격저장소와 통신할 때마다 인증을 물어보는 불편함을 갖고있다면
: SSH를 통해 저장소간에 통신하는 방법을 살펴보자
얘를 이용하면 자동으로 로그인할 수 있다. --생코강의 있어
(2)
깃호스팅의 기능을 꼼꼼히 살펴보기
깃허브 깃랩은 프로젝트를 진행하는데 도움될만한 매우 편리한 기능을 제공함
그중에 하나가 issue tracker
프로젝트를 진행하면서 생기는 여러가지 이슈를 공유. 일종의 게시판. 또는 todo list
이걸 이용해서 문제를 기록하고 처리상태를 마킹, 빠짐없이 체계적으로 관리
협업과 결합하면 업무를 분담해서 처리하는 강력한 도구로도 사용이 가능
'생활코딩 Git' 카테고리의 다른 글
Github.com (0) 2022.03.29 Git4 - CLI (4)Collaboration (0) 2021.12.20 Git3 - CLI (2)branch & conflict (0) 2021.12.11 Git4 - SourceTree (4)Collaboration (0) 2021.11.08 Git3 - SourceTree (3)Backup (0) 2021.11.08