Github 용어설명

정상준·2022년 10월 27일
0

Github

목록 보기
5/7
post-thumbnail

예전부터 깃허브에 간단한 프로젝트를 push하곤 했는데 이해를 하고 사용했다기 보단 강의영상을 보고 그대로 따라 올린거여서 이번에 Github의 이해도를 올리기 위해 Github용어를 알아보려고 한다.

  1. Git이란?

다양한 사람이 프로젝트를 개발할 때 겹치지 않도록 프로젝트의 변경을 관리하는 버전관리 소프트웨어이다.

깃을 사용하는 이유로는 대표적으로 3가지를 말할 수 있다.

1-1 협업을 할 때 같은 페이지에 각자의 수정사항을 업로드하고 병합할 수 있다.

1-2 과거에 만들어진 모든 변경 사항의 스냅샷을 저장한다. 그래서 개발도중 이저 히스토리로 돌아가는 것을 가능하게 만든다.

1-3 다른 깃허브 사용자의 프로젝트를 볼 수 있으며 직접 개발에 참여할 수 있다.

push : 내 local에서 변경된 사항을 Remote Repository에 적용하는 것이다.

pull : Remote Repository와 버전을 맞추는 것이다.

commit : push를 하기 전 내 local에서 Remote로 push 할 내용들을 저장하는 것이다. 즉 우리가 과제로 제출할 ppt 5개를 하나씩 제출하는 것 보단 5개를 압축하여 제출하는데 commit은 이와 비슷한 작업이라고 생각하면 쉽다

  1. 로컬저장소, 원격저장소

저장소는 파일이나 디렉토리를 저장하는 장소로 자신의 컴퓨터에 있으면 "로컬저장소", 서버나 네트워크에 있는 저장소를 "원경저장소"라고 한다. 기본적으로 로컬저장소에서 작업을 수행하고 그 결과를 다른 사람들과 공유하기 위해 원격 저장소에 저장한다.

  1. Init, Clone

Git Init : 소스코드 파일을 Git으로 관리하기 위해 Git 저장소를 초기화하는 명령어이다.

Git Clone : GitHub 상 오픈소스나 이미 만들어져 있는 프로젝트의 개발에 참여하기 위하여 원격 저장소에 있는 소스코드를 로컬로 복제할 때 사용하는 명령어이다.

  1. branch

깃 Repo를 만들면 기본적으로 main branch가 하나 생성되는데 main branch의 소스코드를 그대로 둔 상태에서 main의 기능을 추가하거나 유지보수할 때 새로운 branch를 만들어 사용한다.

  1. merge

branch에서 작업이 끝나고 mater branch와 병합할 때 사용한다.

  1. add

작업 디렉토리상의 변경내용을 스테이징 영역에 추가하기 위해 사용한다.

  1. Rebase

2개의 banch를 합칠 때 사용하는 것으로 merge와 비슷하나 merge는 두 branch의 최종결과만 합치지만 rebase는 branch의 변경사항을 순서대로 다른 branch에 적용하면서 합친다.

  1. Pull Request

branch에서의 완료된 작업을 동료들과 리뷰하고, master과 합치도록 요청하는 명령어이다.

  1. push, pull

아래 그림과 같이 A와 B가 프로젝트를 진행한다고 해보자

vue image

각자의 컴퓨터에 프로젝트의 버전은 동일한 상태이다.

하지만 A가 코드를 수정해 push한다면 다음과 같은 상태가 된다.

vue image

A와 B는 서로 다른 버전을 가지고 있기 때문에 이상태에서 B가 push를 한다면 에러가 발생하게 된다.

vue image

이러한 문제를 해결하기 위해 B는 pull을 해줘야한다. 그러면 자동으로 A가 올린 코드가 merge되어 버전이 맞게되고 그 이후 B가 push를 한다면 정상진행 된다.

vue image

  1. git commit

commit은 Push하기 전 내 local에서 Remote로 push할 내용들을 저장하는 것 이다.

A가 개발한 a기능과 b기능이 있다고 가정한다.

1) 그러면, a기능 개발 후 commit , b기능 개발 후 commit 이런식으로 나누어 준다.

2) 이후 push를 하게 되면 commit한 내용들이 push가 되는 것 이다.

쉽게 이해하는 방식으로는 우리가 과제를 업로드할 때 여러개의 파일을 압축하여 한 번의 진행하는 것을 생각하면 된다.

vue image

지금까지 대표적인 git의 용어에 대해 알아봤는데 다음에는 직접 사용해보며 익숙해지는 시간을 가져야겠다.

profile
안드로이드개발자

0개의 댓글