내가 한 노력들

Git과 Github 본문

IT 공부/git

Git과 Github

JONGI-N CHOI 2021. 2. 1. 22:07

버전관리시스템

소스코드의 변경상황을 관리하는 도구

백업/타인과의 공유를 통

해서 협력이 가능하도록 하는 것

 

 

Gitgithub는 다르다.

Git은 파일의 수정 추가 및 업로드를 해주는 역할을 한다.

 

Github는 자신이 업로드한 파일을 Git이 없어도 볼 수 있고 다른사람과도 공유가능한 것

 

 

 

git에서 Drobox client와 같은게 Git client 이다. Git client 프로그램들에는 GitCommendLine/sourcetree등등 다양한 클라이언트가 존재한다.

 

git은 오픈소스의 거대한 생태계 위에서 만들어진 거기 때문에 다양한 프로그램들이 존재.

 

이것을 Git server에다가 저장한다. (git 원격저장소)  = github.com 이다.

 

Github를 사용해야되는 이유?

대부분의 개발자가 사용하기 때문이다.

협업을 하기위해서는 꼭 필수적, 개발자가 아니더라도 이것을 통해서 파일관리를 할 수 있다

 

 

사용순서

New Repositories

파일/프로젝트 소스코드를 저장하기 위한 저장소를 만든다. 

 

 

새로운 파일 작성 및 업로드 

파일에 대한 일지 작성가능

 

GitHub에서 중요한 용어들 

Commits -> 버전수  

 

contributors -> 협업자  

 

star -> 좋아요

 

watch -> 구독자

 

fork -> 복제한수

 

Commits

버전을 의미한다.

최신 순서대로 누가 commit을 했는지에 대한 정보 

 

 파일을 눌러보면 파일에 새로 추가된 코드 삭제된 코드를 확인할 수 있다. 

commit에서도 다른 사람이 작성한 코드나 파일에 댓글을 통해 소통을 할 수 있다. 

 

Commit를 통해서 버전관리를하고 어떤 일이 일어났는지 추적을 할 수 있고 어떤 변화/ 누가 수정했는지를 확인 할 수 있다.

 

Issues 

문제점에 대해 논의하기위해서

버그를 해결하기 위한 것이나
담당자가 있을 수 도 있고 댓글도 달 수 있다.

 

 

New issues 를 통해서 새로운 이슈 작성

 

담당자 설정

 

라벨(카테고리)

 

이 이슈가 어떤건지 버그인지 뭔지 표시

이슈 닫기

이슈가 해결되면 닫기

 

 

 

 

내컴퓨터에서 작업한 것을 원격저장소로 업로드하기 위해서는 git이라는 프로그램을 깔아야한다.

내컴퓨터와 git허브를 연결시켜서 파일을 서로 주고받도록 해야한다.

 

연결시키기 위한 Github상의 주소 

 

Wiki

프로젝트에 참여하는 방법이나 프로젝트에 관련된 지식같은 것을 위키피디아 처럼 정리할 수 있음

 

Insights

프로젝트에 관한 지표를 볼 수 있다.

공헌자들의 핵심 맴버

commit수의 빈번도등등을 확인

Code frequency는 코드가 활발히 작성되고 있는지의 대한 빈도

Network  

forks 오픈소스를 복제하는 기능

 

 

Actions

누군가가  push했을 때 그 코드에 문제점은 없는지에 대한 Test를 한다던가

업무일지에 자동으로 저장시킨다던가

Push의 대한 정보를 email을 보낸다던가. 할 수 있도록 설정해줄 수 있다.

 

 

 

 

 

 

Git 명령어

Git clone <저장소 주소> {저장소 위치}

저장소 주소와 git clone이라는 명령어로 복제를 한다.

 

Git diff   -> Git status

마지막 버전과 현재 저장소에 파일들과의 차이점이 있는지 알려줘

 

Git add <파일명>

커밋할꺼야 준비해

 

Git commit -m “{설명}”

Commit 한다.

 

Git log

Git의 히스토리를 보여줘 버전을 보여줘

 

Git push

지금 지역저장소에 있는 파일을 퍼블릭 저장소에 업로드 시켜줘

 

 

Git Branch

현재 깃 브랜치가 뭐가있고 어떤 것을 사용하고 있는지 볼 수 있다.

 

Git Branch <브렌치 이름>

브렌치 생성

브랜치 이름은 보통 exp라던가 회사마다 붙는 접두사가 존재한다.

 

Git checkout <브렌치 이름>

해당 브렌치로 이동한다.

 

Git log -–branches --decorate

브랜치와 마스터 사이와의 차이를 보는 법

–branches -> 현재 해당되있는 브렌치말고도 모든 브랜치를 보여준다.

 

MASTER 브렌치는 지금 버전 2까지

Exp 브랜치는 버전 4까지 있는 상태이고

HEAD -> exp 현재 체크아웃 되어있는 브랜치는 exp

 

 

Git log -–branches –decorate –graph

좀더 구도화해서 보기 편하게 해주는 방법

브랜치의 흐름도를 볼 수 있다.

Master 와 브랜치가 서로 각자의 길을 걷고있을 때 보기 편하다.  

사진에서 보면 exp라는 브랜치는  master의 버전 2에서부터 파생된 브랜치임을 알 수 있고

Master 브랜치는 버전 5전에는 버전 2였다는 것을 알 수 있다.

 

두 브랜치의 공통적인 버전이 무엇인지 알수있다.

 

 

Git log -–branches –decorate –graph –oneline

한줄로 더 짧게 확인가능

 

 

Git log master ..exp

현재 마스터와 exp브랜치와의 차이점이 뭐냐

 

3번과 4번이  마스터에는 없고  exp에는 존재하는 것이다.

 

 

Git log exp ..master

그 반대

 

Git log -p exp ..master

어떤 소스코드 변화가 있는지 보여준다

 

 

Git diff master..exp

두 브랜치 사이에 차이점

 

merge

exp브랜치에서 작업한 커밋의 내용을 마스터 브랜치에 옮기는 것

 

exp 브랜치를 마스터 브랜치로 가져오고 싶을 때

master 브랜치로 체크아웃 한다음에

git merge exp  명령어 입력

 

<Git log -–branches –decorate –graph –oneline>

 

 

 

병합하고 난 뒤에 exp 브랜치도 maste엔 있고 exp 브랜치에 없는 것을 커밋하고 싶은 경우에는

똑같이 exp브랜치로 체크아웃 한다음에

Git merge master 를 하면 된다.

 

Expmaster와 똑 같은 상태가 되었다.

 

이젠  exp는 쓸모없어 졌다 싶으면

다시 마스터로 체크아웃한뒤에

Git branch -d <브랜치 명>

브랜치를 삭제한다.

 

 

git push -u origin <branch-name>

로컬 브렌치를 원격에도 똑같이 만들어준다

 

 

 

 

 

<참고영상 YOUTUBE-생활코딩>

www.youtube.com/watch?v=k8fsn335YLQ&list=PLuHgQVnccGMA8iwZwrGyNXCGy2LAAsTXk&index=24&ab_channel=%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9