본문 바로가기

데이터사이언스

[Github] 깃헙 기본개념

Github 기본 개념.

  1. 깃(Git) : 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템.    소프트웨어 개발에서 소스 코드 관리에 주로 사용.
  2. 깃허브 : 소프트웨어 소스코드 관리 서비스. 소스코드를 자유롭게 열람할 수 있고, 버그 관리, share 등 sns 기능도 있음.
  3. Repository (저장소) : 로컬저장소, 원격저장소로 나뉜다.
  • 로컬저장소 → 자신의 컴퓨터에 있음.
  • 원격저장소→ 서버, 네트워크에 위치, 깃허브가 여기에 해당
  • 기본적으로 로컬저장소에서 작업을 수행하고, 그 결과를 원격 저장소에 저장함.

 

용어정리

  • 커밋(commit) :로컬 저장소에 파일 저장(갱신) . 프로젝트 중 하나의 지점(복원, 재작성) 등이
  • 푸시(push) : 로컬 저장소 -> 원격 저장소에 파일 업로드(갱신)
  • 풀 (Pull) : 원격 저장소 -> 로컬 저장소로 파일 다운로드(동기화)
  • 브랜치 (branch) : 여러 버전을 관리하기 위함. 즉, 출시하고 있는 버전에 새로운 기능 추가 및 버그 수정이 용이하다
  • 스냅샷 : 컴퓨터 파일 시스템에서 과거의 한 때 존재했던 컴퓨터 파일과 디렉터리 모임. 쉽게 말해서 개발버전
  • 커맨드 라인 (Command Line) : 윈도우의 명령 프롬프트, 맥의 커맨드 처럼 텍스트 기반의 명령어를 사용하는 프로그램. 깃에서는 깃 배쉬를 의미하는 듯 하다.
  • 포크 (fork) : 다른 원격 저장소에서 또 다른 원격 저장소로 복사.
  • 되돌리기 (Roll back) : 이전의 커밋 포인트 (Commit point), 즉 과거 버전으로 돌리기 위한 기능. reset과 revert 기능이 있다.
  • 리셋 (reset) : 돌아 가려는 커밋으로 저장소의 정보는 돌아가고, 커밋 이후의 이력은 사라진다.
  • 되돌리기 (revert) : 돌아 가려는 커밋으로 돌아가지만, 수정 후 커밋 버전도 저장하고 있는 상태.
    • 참고) 다만, 원격 저장소가 더 최신의 파일을 가지고 있는 경우 Force(강제) 옵션을 사용하지 않는 한 푸시가 불가능하다는 단점이 있다. 이런 경우 revert를 통해 과거 커밋으로 돌아가야 한다.
  • 클론 (Clone) :  현재 만들어져 있는, 혹은 누군가 만들어 둔 오리진(깃 서버)의 저장소를 로컬로 가지고 온다는 의미.

최최종, 최최최최종 ... 이런 파일들도 스냅샷이 될 수 있겠다.

 

More About 브랜치 (branch)

사실 상 브랜치는 완전히 독립적인 작업공간을 만드는 개념이라고 생각하자. Master 브랜치 하위의 개념은 아닌듯 . 

 

  • Master 브랜치 : 프로젝트의 메인 디렉토리로 최종 승인자이자, 홈 화면에 뜨는 브랜치. 최종 파일을 보통 마스터 브랜치에 업로드
  • Branch off : 메인 프로젝트의 브랜치, 마스터브랜치를 따와 자신만의 버전을 만드는 방법.
  • Merge : 간혹 마스터 브랜치보다 현재 새로 만든 브랜치가 최신이거나, 메인 프로젝트의 파일이라고 생각되는 경우, Merge를 통해 브랜치를 마스터 브랜치로 병합할 수 있다.
  • PR : Merge를 요청하는 것으로 Github 내에서 반영. (동일한 Repo 내에서만 해당되는 지는 모르겠다.)
  • Checkout : 커밋이나 브랜치를 자유롭게 지정해 줄 수 있다. 이때 Head는 현재 작업 중인 브랜치나 커밋을 가리킨다.

지점은 역사의 흐름을 분기하여 기록해 나가는 것입니다.  한 지점은 다른 지점의 영향을 받지 않습니다.

 

More About Checkout? 

https://blog.naver.com/codeitofficial/222011693376

 

git reset과 git checkout의 차이점(심화)

git reset과 git checkout의 차이점에 대해서 구체적으로 알아보겠습니다.​이 부분은 Git을 사용할 때 꼭...

blog.naver.com

 

 

 


Github 처음 사용법.

기본적으로 작은 작업 단위로 Commit. Commit 시에는 커밋 메세지를 남겨두면 더 좋다. (마크다운느낌...)

어느정도 작업이 일단락 되었을 때 원격으로 push.

  1. Github에 저장소 작성/git init 또는 복제/git clone
  2. 파일의 작성 및 편집
  3. 파일의 생성, 변경, 삭제를 git 인덱스에 추가. /git add
  4. 변경 결과를 로컬 저장소에 커밋 / git commit
  5. 로컬저장소를 푸쉬/git push 해 원격저장소에 반영.

Git hub 저장소 작성

추가 설명

  • Initialize this repository with a README : README 파일을 로컬저장소에 미리 저장했을 때 체크. 혹은 처음 만들 때 README 파일을 자동으로 만들지 물어보는 경우. 개인적으로는 귀찮아서 미리 만드는 편.

  • README :
    • 디렉터리나 압축 파일에 포함된 기타 파일에 대한 정보를 포함하고 있으며, 일반적으로 컴퓨터 소프트웨어와 함께 배포된다. - 출처 위키백과
    • 본래  깃헙에 올라와 있는 파일들을 설명해주는 글을 쓸 수 있는 공간. 작성 폼이 주피터 노트북의 마크다운과 비슷한 구조다. 이 파일에 글을 적으면 깃헙 레포지토리 대문에 바로 뜬다.
  • gitignore과 license 는 나중에 추가 및 변경할 수 있으므로 초보단계에서는 일단 None. 

 

 

Github DeskTop, Git Bash 설치.

이 당시에는.. 뭘 잘못눌렀는지 웹에서 바로 파일 업로드가 안된다고 떠서 깃헙 데스크탑을 설치했었다. 깃허브 데스크탑은 아마도 로컬환경에서 파일을 바로 업데이트 할 수 있도록 도와준다. 다만 깃헙 명령어 몇 가지를 숙지해야 한다는 점에서.. 정규식도 어버버하기 때문에.. 저는 그냥 웹에서 올려요.

Configure Git과 email...은 대체 뭔지 모르겠으나, 대충 설명을 읽어보니 깃헙 데스크탑에서 로그인 하기 위한 것으로 추측한다.

일단 저 이메일은 대충 만들었음.

 

Clone a Repository 

Clone : 현재 만들어져 있는 혹은 누군가 만들어 둔 오리진 (깃 상의 공간, 서버)의 repo를 복제해온다. 그러니까, 깃허브 상의 어떤 레포지토리 자체를 로컬로 가지고 온다는 뜻이다. 

조금 더 쉽게 설명하면,  카카오에서 어떤 패키지, 모듈 등을 깃에 올렸고, 내가 활용하기 위해서 가져올 때 'git clone 카카오깃허브주소' 로 불러온다.

내 컴퓨터 로컬 공간과 방금 만든 레포지토리를 클론하고 있다.

 

클론에 성공해서 내 컴퓨터 내에 해당 레포에 들어있는 파일이 다운로드 되었다.

 

일단 그리고 복제하면, 로컬파일에 다음과 같이 생성됨 .... GReat....

+) 추가적인 환경 설정 : Git bash (명령어창) 도 설치 후 ( 걍 next 계에속 눌려주시고, ui는 아무거나 해도되구..) git 명령어 입력해서 잘 뜨면 설치 ㅇㅋ, Git도 설치필수

 

 

 

 

✔️ 깃허브에 대해 자세히 알고 싶다면

: 깃허브 기본 개념과 링크에 대해서 잘 정리해둔 아래 블로그 참고!

https://blog.naver.com/gowjr300/221767264208

 

#Git 2. 깃의 명령어 & 용어

Git 이라는 것이 무엇이고 왜 써야하는 지, 또 어떻게 구성되어 있는 지 까지 전반적으로 알아보았다.이제...

blog.naver.com

https://jeonghwan-kim.github.io/dev/2020/02/10/git-usage.html

 

깃(Git) 개념과 상황별 팁

git-usage 저장소가 어느새 스타 10…

jeonghwan-kim.github.io

https://github.com/jeonghwan-kim/git-usage

 

jeonghwan-kim/git-usage

자주 사용하는 깃 명령어 모음 . Contribute to jeonghwan-kim/git-usage development by creating an account on GitHub.

github.com