Git&GitHub

InSeok·2022년 7월 3일
0

TIL

목록 보기
6/51

학습목표


  • Git의 환경설정
  • Github과 Git의 관계
  • Local Repository와 Remote Repository의 차이
  • Github의 기능과 Git 명령어를 사용
  • Git의 세 가지 영역 및 상태

배운 내용


  • Git : 소스 코드 기록을 관리하고 추적할 수 있는분산형 버전 관리 시스템
  • Git이 관리하는 디렉토리(폴더)에 어떤 문서를 만들면 Git으로 그 문서의 버전을 관리할 수 있습니다.
  • Git은 여러분의 작업물을 온라인 원격 저장소에 백업할 수 있도록 백업 기능을 제공해줍니다.
  • Git은 로컬에서 버전을 관리해주는 프로그램이며, Github은 Git을 클라우드 방식으로 구현한 서비스입니다.
  • Github: Git Repository를 관리할 수 있는 클라우드 기반 서비스(개발자들의 SNS)
    • 코드리뷰를 통한 협업
    • 수많은 오픈소스 프로젝트 호스팅(자유롭게 기여가능)
      • 기여(Contribution) : 기능을 추가하고 개선하는 작업
    • 내 컴퓨터에서 Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트
  • Git으로 버전을 관리하는 폴더에 대해서 Github을 통해 여러 사람들이 공유하고 접근가능
  • 버전관리: 각 버전 별로 변경된 이력들을 저장하는 작업 하나하나 추가되는 기능들의 변경 이력을 저장
  • 오픈 소스(Open Source : 소스 코드가 공개된 소프트웨어)
  • 스냅샷 : 특정 시점에 생성된 백업 복사본
  • Git Repository(저장소) : Git으로 관리되는 폴더
    • Remote Repository : 원격 온라인 서버상의 저장소 (공유가능)
    • Local Repository : 내 컴퓨터의 개인 저장소
  • Fork : 다른 원격 저장소를 내 원격 저장소로 가져오는 작업
  • Clone : 내 원격 저장소에 있는 코드를 내 컴퓨터로 가지고 오는 작업
  • 내컴퓨터에서 소스코드 변경 작업을 완료하고, 변경내용들을 commit 한뒤, 원격 저장소에 올려주기push
  • push : 로컬 저장소에 기록해 놓은 commit을 원격 저장소로 업로드하는 작업
  • push를 완료하면, Pull request 기능을 통해, 내가 제안한 코드 변경사항에 대한 반영여부 요청
  • Pull Request(PR) : 내가 원격 저장소에 Push 한 변경사항에 대해 함께 작업하는 다른 사람들에게 알리는 것
  • pull : 원격 저장소에서 변경사항이 있을때 로컬 저장소로 가져오는 작업
  • staging area : 내 컴퓨터의 작업공간(Workspace)에서 작업에 들어간 파일들을 git의 관리하에 있는 상태로 올려 줄수있는데 이 영역을 Staging area라고 한다.( 커밋 하기전 내용을 기록하는 장소)
    • staging area에 들어오지 않은 파일은 unstaged 혹은 untracked file이라고 말하며, staging area에 있는 파일들은 staged 된 파일 이라고 한다.
    • staging area에 들어온 파일들은 commit이 가능
  • git clone <레파지토리 주소>
  • git status 내 로컬의 staging area, untracked fils 목록 확인 가능
  • git restore <파일명> 커밋 되지 않은 변경사항 폐기
  • git add 파일명 or . 로컬의 untracked file을 staging area로 추가 가능, . 은 모든 파일
  • git commit -m ‘커밋 메시지’
  • git reset HEAD^ : 현재 브랜치 마지막 커밋 1개 삭제
  • git push <origin> <branch> : 원격저장소에 있는 origin의 master(main) 브랜치에 로컬의 변경사항 업로드
  • git log : 현재까지 commit된 로그들을 확인
  • git init : 기존 디렉토리를 Git Repository로 변환하거나 새로운 Repository를 초기화하는데 사용 (Git의 관리하에 들어가게 만들어주는 명령어)
  • git remote add origin <Repository 주소> : Local Repository에 Remote Repository 연결
  • git remote add 페어이름 <Repository 주소> : Local Repostiory에 페어 Remote Repository 연결
  • git remote -v : 현재 Local Reopository와 연결된 모든 Remote Repository 목록 확인
  • git pull 페어명 <브랜치명> : 페어의 Remote Repository에 있는 작업내용을 받아올 수있다.
    • 받아오는 내용은 자동으로 merge 된다.
  • Untracked are 는 Git이 관리하고 있지 않은 영역, Tracke area에 들어온 파일들만 Git의 관리를 받을수 있다.
    • Tracked area 내부 상태
      • Unmodified : 기존에 Commit 했던 파일을 수정하지 않은상태
      • Modified : 기존에 Commit했던 파일을 수정한 상태
      • Staged : commit이 가능한 상태

커밋(Commit)

  • 하나하나 스냅샷을 만들어 주는 작업 , 변경 사항에 대한 스냅샷을 만들고 이전의 기록들에 대한 추적이 가능
  • 소스 코드가 변경된 이력을 쉽게 확인할 수 있고, 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 되돌아갈 수도 있습니다.

Git 환경설정

사용자정보

  • 터미널 화면에 Github에 등록된 사용자 이름과 이메일주소 기입
$ git config --global user.name "나의 사용자 이름"
$ git config --global user.email "내 이메일 주소"

**SSH등록**

  • SSH(**(Secure Shell) : 보안이 강화된 shell 접속(**CLI 환경(터미널)에서 다른 PC에 접속하거나 요청할 때 사용하며, 비대칭키를 이용해 사용자를 인증**)**

**SSH 키 생성**

ssh-keygen : ssh 키 페어(쌍)을 생성

  • ~/.ssh./ 에 두 파일(키 페어) id_rsaid_rsa.pub를 생성
  • id_rsa.pub는 누구에게나 공개해도 되는 공개키(Public Key)
  • id_rsa는 공개되면 안 되고 나만 보관하고 있어야 하는 키라고 하여 개인키(Private Key)
    또는 비밀키(Secret Key)
  • 공개키를 복사하여 gitub에 등록

**공개키(Public Key) 복사**

cat ~/.ssh/id_rsa.pub 으로 공개키 내용 출력후 복사후 Github에 등록

어려운 내용(에러)


문제

  • git bash 복사, 붙여넣기 안됨

해결

  • 복사할 영역 드래그후 마우스 우클릭 해서 copy, paste
  • 복사 : Ctrl + Insert / 붙여넣기 : Shift + Insert
profile
백엔드 개발자

0개의 댓글