Github 기본 개념.
- 깃(Git) : 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템. 소프트웨어 개발에서 소스 코드 관리에 주로 사용.
- 깃허브 : 소프트웨어 소스코드 관리 서비스. 소스코드를 자유롭게 열람할 수 있고, 버그 관리, share 등 sns 기능도 있음.
- 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
Github 처음 사용법.
기본적으로 작은 작업 단위로 Commit. Commit 시에는 커밋 메세지를 남겨두면 더 좋다. (마크다운느낌...)
어느정도 작업이 일단락 되었을 때 원격으로 push.
- Github에 저장소 작성/git init 또는 복제/git clone
- 파일의 작성 및 편집
- 파일의 생성, 변경, 삭제를 git 인덱스에 추가. /git add
- 변경 결과를 로컬 저장소에 커밋 / git commit
- 로컬저장소를 푸쉬/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
https://jeonghwan-kim.github.io/dev/2020/02/10/git-usage.html
https://github.com/jeonghwan-kim/git-usage