SEB_BE 7일차 - git

subimm_·2022년 8월 29일
0

코드스테이츠

목록 보기
8/83

💡 오늘의 학습목표

  • git 이해
  • git workflow (pair)

📔 Git

  • 파일을 관리해주는 프로그램
  • 버전관리, 백업, 협업
  • Git Repository 저장소
    Remote Repository - 원격 온라인 서버 여러 사람 공유
    Local Repository - 내 컴퓨터의 개인 전용 저장소

📔 Github

  • Git Repository를 관리할 수 있는 클라우드 기반 서비스
  • contributor(기여하고 싶을 때)
    Fork - 프로젝트 원격 저장소를 내 원격 저장소로 가지고 오는 작업
    Clone - remote repository에서 내 컴퓨터로 가져오는 작업
    Push - 로컬에서 변경된 내용을 커밋으로 저장하고 리모트에 올려주는 작업
    Pull - 리모트에서 변경사항이 있을 때 내 로컬로 가져오는 작업


    Pull request - 협업자에게 나의 작업물을 취합 요청하는 과정
    merge - 상대방의 작업물과 나의 작업물을 취합하는 과정

git 환경설정

git config --global user.name " "
git config --global user.email " "

git config --global core.editor nano

SSH 등록

  • 강화된 shell접속 CLI 환경에서 다른 컴퓨터에 접속하거나 요청할 때 이용하는 비대칭키

SSH 키 생성

  • 비대칭 키
    ssh-keygen - 키 페어 생성 (경로 ~/.ssh./)
    id_rsa - 개인키, 비밀키
    id_rsa.pub - 누구에게나 공개가능한 공개키
  • 공개키 복사하여 github에 등록
    cat ~/.ssh/id_rsa.pub
    • github에 이동하여 프로필 - 세팅 - SSH and GPG keys
  • 테스트

📔 workflow

  • Fork 로 리모트 레파지토리에 복사
    git clone <레파지토리 주소> 내 컴퓨터로 복사해오기
    • 커밋 전 git status - stagingarea 와 untracked files 목록 확인
      add : 파일을 커밋 할 수 있는 상태로 만들어준다.
      ( 내 로컬의 untracked file을 git의 관리 아래인 staging area로 추가)
      git add <파일명>
      git add. 모든 파일 한꺼번에 추가

restore : 커밋되지 않은 로컬 레파지토리의 변경사항을 폐기

  • gir commit - 변경사항 저장
    -m 메모를 통해서 버전 변경 기록 관리
    git commit -m 'mypage 구현'

    • git reset : local 에서 커밋한 내용을 취소
      git reset HEAD^ : 가장 최신의 커밋 취소 (HEAD~1)

  • git push : 현재 로컬의 커밋 기록들을 내 리모트에 업로드
    git push <origin> <branch>
    git push origin master/main

  • git log : 현재까지 커밋 된 내역 확인 (창종료:q)

  • Pull Request : 리모트에 push 해 놓은 변경사항에 대해서 협업자에게 알리는 것 (현업에서는 PR) 반영 요청
  • Local Repository
    Unmodified : 기존에 커밋했던 파일을 수정하지 않은 상태
    Modified : 기존에 커밋했던 파일을 수정한 상태
    Staged : 커밋이 가능한 상태 (커밋 위해서 staged area에 add 작업 필요)

📔 함께 작업 workflow

  • git init : 내 pc에서 만든 디렉토리를 git의 관리하에 들어가게 만들어준다.
    (git repository 로 변환) > local repository 생성
  • git remote add origin <레파지토리 주소> : 로컬을 리모트와 연결하여 깃헙에서 원격으로 관리
  • git remote add (pair) <레파지토리 주소> : 상대방의 리모트 레파지토리에 연결
  • git remote -v : 현재의 로컬 레파지토리와 연결된 모든 리모트 레파지토리 목록 확인
  • git pull <shortname> <branch> : 상대방의 리모트에 있는 작업 내용 받아오기 (자동으로 병합)
    ex) git pull pair master
    수정하지 않고 나의 리모트 레포에 올리기 - push
    수정하고 add-commit 후 push 하여 리모트 레포에 올리기

    같은 부분을 변경한 내용이 존재하여 자동으로 병합 할 수 없는 경우
    merge conflict 가 발생

    • got status 로 어떤 파일이 충돌중인지 확인
      Accept Current Change : 내가 수정한 내용으로 반영
      Accept Incoming Change : 리모트 레파지토리의 내용으로 반영
      Accept Both Changes : 변경 사항 모두 반영
      수정 내용 확인 후 수정할 부분 남기고 삭제
    • 수정을 마치면 병합 커밋을 생성하기 위해 파일을 staging area로 추가
  • merge commit은 자동으로 커밋 메시지 생성 (수정 가능)
    git add - commit - push
  • 클론을 하면 자동으로 fetch와 push
    fetch 는 pull을 해 올 링크
    push 는 push 를 할 링크
    * 커밋을 한 번 한 이후에는 add와 커밋을 한번에 할 수 있다.
    git commit -am "메시지"

회고

오늘은 매번 말로만 들어봤던 깃과 깃허브를 알아보고 학습할 수 있던 시간이었다. 처음에는 생각보다 너무 어렵고 이해가 잘 안되어서 페어분과 실습조차 잘 못했지만 페어분이 도와주시고 실습해보고 마지막 라이브세션때 설명을 들으니 많이 이해가 된 것 같다! 1일1커밋까진 아직 무리이지만 시간 될 때 많이 연습해두어야겠다.
내일은 드디어 자바 학습을 들어가는 날이다. 학습분량이 어마어마 할 것 같아서 걱정이고 페어분과 계속 문제를 같이 풀면서 해야되서 그것도 많이 걱정된다..

profile
코린이의 공부 일지

0개의 댓글