23.3.20 DevOps 10일차

쿡쿡·2023년 3월 20일

DevOps(Code States)

목록 보기
3/25

Achievement Goals

  • Git의 환경설정을 할 수 있다.
  • 버전 관리 시스템의 필요성을 이해할 수 있다.
  • Github과 Git의 관계에 대해 이해할 수 있다.
  • Repository에 대해 이해할 수 있다.
    • Local Repository와 Remote Repository의 차이를 이해할 수 있다.

< Git 설치 - Ubuntu >

sudo apt install git 패키지 git 설치
git --version 설치 확인

< Git 환경설정 >

git config --global user.name "나의 사용자 이름"
git config --global user.email "내 이메일 주소"사용자 이름, 이메일 주소 설정.
(--global 옵션으로 설정하면, 사용자 홈에 저장되어 git을 설정할 때 처음에 단 한 번만 입력하면 됨)

git config --global core.editor nano nano에디터로 변경

< SSH 등록 >

최근 Github의 정책이 변경되어, HTTPS로 git을 사용할 때에는 토큰을 발행하여 접속해야 함.
반드시 알아야 하지만 이 과정에서는 ssh를 이용해 github와 소통하는 법을 다룬다고 함.

중요한거면 지금 해야하는거 아냐...?

ssh-keygen + enterx3 ssh키 생성
cat ~/.ssh/id_rsa.pub 공개키 복사
Github > 우측 상단 프로필 > Settings > SSH and GPG keys > New SSH key > SSH 코드 복사
git clone (주소)로 정상작동 확인


Git

< Intro >

  • Github, GitLab, Bitbucket 등, 여러 가지 원격 저장소를 이용해서 백업과 협업이 가능함.
  • Git = 개발자의 코드를 효율적으로 관리하기 위해서 개발된 '분산형 버전 관리 시스템'.[ ⓒ 유아클레스 강의 ]
    그림 처럼 파일이 어떻게 바뀌었는지 날짜별로 확인 가능.
  • 특정 시점에 생성된 백업 복사본을 스냅샷이라고 함. 이렇게 스냅샷을 만들어 주는 작업을 commit 이라고 함.
  • Pull requests > Files changed 에서 어떤 부분이 어떻게 바뀌었는지 한눈에 확인할 수 있음.

< Github >

  • Git Repository를 관리할 수 있는 클라우드 기반 서비스(Git으로 버전 관리하는 폴더에 대해 Github를 통해 여러 사람들이 공유하고 접근 가능)
  • 컴퓨터가 잘못되어 파일들을 모두 삭제한다면 백업본이 필요함, 이런 서비스를 대신해주는 서비스가 Github.
  • 오픈 소스들도 있어서 누구나 자유롭게 해당 기능을 추가하고 개선할 수 있음.

< Git Repositiry >

  • Remote Repositiry 와 Local Repositiry 두 종류의 저장소를 제공. 작업할 때는 Local Repositiry, 작업한 코드를 공유하려면 Remote Repositiry에 업로드해 여러 사람이 함께 공유 가능
  • 다른 사람이 Remote Repositiry에 올려옿은 소스 코드를 내 Local Repositiry로 가지고 올 수 있음.

다른 사람의 Remote Repositiry에 소스코드가 올라와 있으면 내 원격 저장소로 가지고 오는 작업이 필요함. 그 과정을 Fork라고 함.
Fork를 하면 나의 Remote Repositiry에 코드를 옮겨온 상태임. 이 코드를 수정하기 위해서는 내 컴퓨터로 가져오는 작업 필요. 그 과정을 Clone이라고 함.
소스 코드 변경 작업을 완료후 변경된 내용을 commit을 통해 저장 후 Remote Repositiry에 반대로 올려주는 작업 필요. 그 과정을 Push라고 함. 이렇게 Push를 완료하면 Github에는 Pull request라는 기능이 있어, 내가 제안한 코드 변경사항에 대해 반영 여부를 요청할 수 있음.
Remote Repositiry에서 변경 사항을 Local Repositiry로 가져오는 반대 상황에는 Pull 작업도 가능.

< Github 명령어 >

git (명령어)

  • Fork : 다른 저장소를 복사하여 자신의 계정으로 가져옴
  • clone : 원격 저장소의 내용을 로컬 컴퓨터로 복제
  • status : 현재 작업중인 로컬 저장소의 상태를 보여줌
  • restore : 변경 사항을 이전 상태로 되돌림
  • add : 변경 사항을 스테이징 영역에 추가
  • commit : 스테이징 영역에 추가된 변경 사항을 로컬 저장소에 저장
  • reset : 이전 커밋 또는 브랜치로 돌아감
  • log : 커밋 기록을 보여줌
  • pull : 원격 저장소의 변경 사항을 로컬 저장소로 가져옴
  • push : 로컬 저장소의 변경 사항을 원격 저장소로 전송
  • init : 새로운 로컬 저장소를 초기화
  • remote add : 원격 저장소를 추가
  • remote -v : 로컬 저장소에 연결된 원격 저장소의 목록과 URL을 보여줌

진심 너무 머리에 유입되는 정보가 많아서 뭐가 뭔지 처음에는 하나도 안보이다가 이제 좀 시간 지나고 몇번 성공을 하니까 조금은 알듯? 한 느낌.. 그래도 재미있어
중간중간 모르는거 물어보는 선생님들이 있는데 도망가는거 아니겠지? ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

profile
https://www.notion.so/a67850905fb843fc9cdcdb173f888338

0개의 댓글