주말 공부 1일차

김서영·2022년 9월 11일
0

내일배움캠프 TIL

목록 보기
11/85

1. Git & Git hub 사용

  • 버전관리란?
    : 누가, 언제, 현재 프로젝트의 내용이 어떤지 정보를 남긴다는 것

  • Git 초기화란?
    : 컴퓨터에 있는 프로젝트를 Git 이 관리하는 프로젝트로 설정하는 것(처음에 한번만 하면됨)

  • commit이란?
    : 현재 프로젝트의 상태를 저장한다. Git 이 이전 commit(이전에 저장한 프로젝트의 상태)를 알고 있으므로 자동으로 어떤 부분이 바뀌었는지 알려준다. 누가, 언제, 어떤 부분을 바꾸었는지 확인해볼 수 있다.

  • staging(add)이란?
    : commit 에 반영할 파일을 선택하는 것(파일단위로 선택 가능)

  • commit history이란?
    : commit 한 순서대로 리스트. 역사!

  • repo란?
    : Git으로 관리되는 프로젝트
    로컬 repo : 내 컴퓨터에 저장되어있는 리포지토리
    원격 repo : 다른 곳에서 접속할 수 있는 공간에 저장되어있는 것

  • Tracking 이란?
    : 로컬 repo와 원격 repo의 특정 브랜치를 연결해주는 것
    pull과 push는 기본적으로 트래킹(추적)되고있는 브랜치를 기준으로 commit 내역을 반영한다.

  • push이란?
    : 로컬 repo 의 새로운 commit 들을 원격 repo 에 반영하기(밀어넣기)

  • pull이란?
    : 원격 repo 의 새로운 commit 들을 로컬 repo 로 반영하기(땡겨오기)

  • clone이란?
    : 원격 repo 를 내 컴퓨터에 가져오기

<협업의 단계>
1. 누가 이 작업을 맡을 것인지! -> Issue
2. 각자 맡은것을 작업 공간을 나누어서 작업! -> Branch
3. 각자 작업을 메인 프로젝트에 합치기! -> Merge
(경우에 따라 작업한 내용을 바로 합치기지 않고 작업한 내용을 리뷰한 후 최종적으로 메인 프로젝트에 반영) -> PR 후 Merge

  • Issue란?
    : 내가 할 작업, 기능추가, 버그 리포트 등 여러 방식으로 사용 가능
    협업을 하기 위해 issue를 만들어 누가 작업할지 정하고, 브랜치를 만들어 작업할 공간을 나눔

  • Branch란?
    : 특정 commit에서 갈라져나와서 작업하는 것, 보통 기능별로 이름을 만들고 Branch로 나누어 작업
    작업할 브랜치로 바꾸는 것을 Check Out(체크아웃)이라고 한다.
    현재 체크아웃된 브랜치에만 commit이 반영된다.
    브랜치 명은 규칙을 가지고 지어야 관리가 쉬워진다.
    작업이 완료된 후에는 삭제해줘야 오류가 나지 않는다.

  • Merge란?
    : 브랜치의 작업 내역 commit을 다른 브랜치로 합치는 것, 보통 기준(메인) 브랜치를 정하고 해당 브랜치에 합친다.

  • Merge Conflict(병합충돌) 란?
    : Merge를 하는 과정에서 같은 파일의 동일한 부분이 수정된 것이 발견되면 발생
    원하는대로 수정 후 <, >, = 표시부분을 삭제한 후 merge commit 하면 된다.

  • Git 사용 flow
    : https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/

  • 인터넷으로 정보 얻는 법
    - stackoverflow(개발Q&A 사이트)
    https://stackoverflow.com/questions/927358/how-do-i-undo-the-most-recent-local-commits-in-git
    - 구글링

    - 신뢰할 수 있는 블로그(tech 회사의 기술 블로그, IT 전문 매거진)
    - 기술 공식 문서
    https://git-scm.com/doc

  • PR(Pull Request, 풀리퀘스트)이란?
    : 내 작업내역을 바로 merge 하지 않고, 참여하고 있는 프로젝트에 내 작업(branch)를 merge해달라고 요청(Request) 를 먼저 보내는 것이다.
    ❗ PR 이 완료되기 전까진 PR 요청을 한 로컬 브랜치(우리 수업에서는 feature/jjim) 를 삭제하지 않아야 한다.

  • fork이란?
    : 원본 소스코드를 복사해서 새로운 독립적인 소프트웨어로 개발하는 것(다른사람 repo에 pr할때 사용, repository 의 사용권한이 다른 사람에게 있을 때)

  • amend이란?
    : 가장 최신의 commit을 수정
    push를 한 이후에 수정하는 경우 강제푸시 해야한다.(강제푸시는 되도록 안하는 것이 좋다.)

  • revert이란?
    : commit 이 변경되었다는 거 알리면서 되돌리기
    원하는 commit에 마우스 오른쪽 누르고 되돌리기 하면 된다.

  • reset이란?

: commit 했던 작업내역을 말 그대로 리셋시키는 것
- soft : 저장소로 커밋한 사실만 없어진다.
- mixed : 저장소로 커밋한 사실과 스테이지로 추가한 사실이 없어진다.(다시 유지보수 하고 싶을 때 사용)
- hard : commit 들을 되돌리고 그동안 작업했던 모든 것도 없애버린다. 즉, 🚫 작업내역을 복원할 수 없다.(애초에 작업을 잘못했을 때 사용)

💜 오늘 느끼고 배운 점
오늘은 주말에 교육 기간에 다 듣지 못한 Git강의를 공부했다. Git이라는 것이 어떤 곳에 사용되는 것인지 그리고 굉장히 다양한 사용방식이 있다는 것을 알게되었다. 아직은 기초적인 방식으로만 사용 가능하지만 강의에서 말씀해주신 것처럼 알려주신 자료들과 다른 사람들의 페이지를 보며 pr도 시도해 보고 내 코드를 정리해서 올리는 것도 해봐야겠다.

profile
개발과 지식의 성장을 즐기는 개발자

0개의 댓글