GitHub

Git(깃)과 GitHub(깃허브)의 개념

멤호 2024. 5. 19. 02:28

1. Git

 

0) 개념

  • 모든 파일의 변화를 기록
  • 같은 파일에 대한 각기 다른 버전을 보관할 수 있음
    • 변경사항을 모든 각기 다른 n개의 파일에 바로 적용할 수 있게 도와줌
  • 공동 작업자와 같이 서로의 영향 없이 작업 가능하게 해줌

 

 

1) VCS(Version Control System) 

  • 파일의 변화를 시간에 따라 버전별로 기록하고 추후 특정 시점의 버전을 다시 꺼낼 수 있는 시스템
  • VCS가 없었을 때까지는 일일히 버전별 파일을 만들어야 했음

 

 

2) VCS 종류

 

중앙 집중식 버전 관리 시스템(Centralized Version Control)

 

  • 중앙 집중식 버전 관리 시스템(Centralized Version Control)
    • 각각의 개발자들이 원하는 내용을 서버에 업데이트하여 즉각적으로 동기화가 이루어지는 시스템
    • 문제점
      • 서버에 문제가 생기면 개발자들이 작업 x
      • 인터넷이 없을 경우 개발자들이 작업 x

 


 

분산버전 관리 시스템(Distributed Version Control)

 

 

스냅샷(Snapshots)

 

 

 

  • 분산버전 관리 시스템(Distributed Version Control)
    • ex) git, mercurial, darcs ...
    • 중앙 집중식 버전 관리 시스템(Centralized Version Control) 의 문제를 개선하고자 나온 시스템
    • 히스토리 정보
      • 서버에만 히스토리정보가 있음( X )
      • 모든 개발자들이 동일한 히스토리 정보를 가지고 있음( O )
    • 분산된 시스템으로 관리로 서버에 문제가 생겨도
      • 서로의 정보로 서버를 복원 및 이어서 작업 可
      • 인터넷 없이도 작업 可
    • 회사에서는 주로 서버를 사용하는 방법
      • 사내 전용 서버
      • github와 같은 클라우드
    • 프로젝트의 전체 내용을 snapshots해 가지고 있음
      • 버전들 사이를 자유자재로 이동 가능
      • 변경되지 않은 파일들은 링크로 주기 때문에 모든 동작이 빠름
      • 쉽고 빠른 브랜치

 


 

2. GitHub

 

0) 개념

  • 클라우드에 있는 Git 제공자

 

1) GitHub의 흐름

  • 내 pc에 있는 Git 히스토리 ----(푸시)---->>  GitHub ----(히스토리 = 변화기록)---->> 공동 작업자 

 

 

2) 관련 용어

  • 푸시(Push)
    • 로컬 리포지토리의 파일을 리모트 리포지토리로 올리는 것
  • 풀(Pull)
    • 리모트 리포지토리에서 로컬 리포지토리로 내려받는 것
  • 리포지토리(Repository)
    • 저장소
  • 포크(Fork)
    • 다른 사람의 리포지토리 수정, 추가를 위해 해당 리포지토리를 자신의 GitHub 리포지토리로 복제하는 기능
    • 원본 리포지토리와 연결되어 있음
  • 클론(Clone)
    • 리모트(원격) 리포지토리와 나의 로컬 pc를 연결하여, 데이터를 복사해 가져오는 작업
    • 포크한 리모트 리포지토리 ----(연결)---- 나의 로컬 pc
      • 위 작업으로 데이터를 복사해 가져오는 작업
  • 브랜치(Branch)
    • 동일한 소스 코드에서 가져온 독립적인 개발라인
    • 새 기능이나 버그 수정 작업 시 브랜치를 사용하여 다른 팀 구성원의 작업과 분리 可
    • 별도의 브랜치를 하나의 브랜치로 병합 可

 

 

참고 사이트

더보기

 

https://www.youtube.com/watch?v=YFNQwo7iTNc

 

 

https://www.youtube.com/watch?v=lPrxhA4PLoA

 

 

 

https://velog.io/@izi/%EB%B2%84%EC%A0%84-%EA%B4%80%EB%A6%AC-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%B4%EB%9E%80

 

버전 관리 시스템과 GIT의 특징

버전 관리 시스템과 GIT을 알아보자.

velog.io

 

https://velog.io/@chillihc/Git-%EA%B0%9C%EB%85%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0#1-3-%EC%A4%91%EC%95%99%EC%A7%91%EC%A4%91%EC%8B%9D-%EB%B2%84%EC%A0%84-%EA%B4%80%EB%A6%AC-%EC%8B%9C%EC%8A%A4%ED%85%9C-centralized-version-control-systems

 

[Git] Git 개념 이해

프로그램 공부를 하다보면 한 번쯤은 Git에 대하여 들어보거나 사용해보게 된다. 대충은 알겠는데 자세히는 모르겠는것, 사용할 줄은 알겠지만 정확히는 모르겠는 것, 이번 기회에 정확한 정의

velog.io

 

https://tech.10000lab.xyz/git/how-git-is-different.html

 

깃(Git)은 뭐가 다른가? - 스타트업 엔지니어링

깃(git)에 관한 기본 지식 개발자라면 여러 종류의 버전관리 시스템(Version Constol System, VCS)을 사용해 보신 분도 있겠죠. 서로 비슷한 면들이 있겠지만 그래도 깃이 어떻게 동작하는 지 한번 짚어

tech.10000lab.xyz

 

https://velog.io/@skyu_dev/Git-Git-GitHub-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC-add-commit-push-%EB%A1%9C%EB%B4%87%EC%97%90%EC%84%9C-%EB%B2%97%EC%96%B4%EB%82%98%EA%B8%B0

 

[Git/GitHub] 자주 사용하는 용어와 커맨드를 제대로 알아보자

그동안 git을 사용하면서 빈번하게 사용했던 용어와 커맨드의 의미를 알아보자

velog.io

 

https://velog.io/@jidam03/%EA%B9%83%ED%97%88%EB%B8%8C-fork

 

깃허브 fork

출처(https://eunhee-programming.tistory.com/159개발자들끼리 협업할 때 쓰인다원작자 코드를 fork하면 내 원격 저장소에서 코드를 맘대로 뜯어 고칠 수 있다git remote -v 원격 저장소 확인 git remote add u

velog.io

 

https://devlog-wjdrbs96.tistory.com/6

 

[Git] clone 과 Fork 의 차이점

이번 글에서는 clone과 Fork의 차이점을 알아보려 한다. 1. fork란? fork는 다른 사람의 Github Repository에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 repository를 내 Github Repository로 그

devlog-wjdrbs96.tistory.com

 

 

https://nulab.com/ko/learn/software-development/git-tutorial/git-collaboration/branches/what-is-a-git-branch/

 

Git 브랜치란 무엇입니까? | Git tutorial | Nulab

Git 브랜치는 본질적으로 독립적인 개발 라인입니다. 새 기능이나 버그 수정 작업을 할 때 브랜치를 사용하여 다른 팀 구성원의 작업과 분리할 수 있습니다. Git 브랜치는 동일한 소스 코드에서

nulab.com