깃은 분산식 버전 관리 시스템
Git : 로컬(내 컴퓨터에) 설치되는 시스템. 일종의 프로그램
GitHub : 깃이 모여서 하나의 시스템을 구성한다. 원격으로 중앙에서 관리되는 시스템. 프로젝트를 백업하고, 버전관리, 협업 깃들이 소통하는 중간역할
* 즉, 깃은 내 pc 안에 버전을 관리해주는 시스템이자, 깃허브와 소통하는 시스템
* 깃허브는 원격 pc 에서 백업을 담당하는 시스템이자, 내 pc 와 별도로 버전관리도 담당한다.
둘의 관계
무수히 늘어나는 버전 폴더를 갱신하는 동기화 처리
프로젝트의 히스토리를 깃허브가 관리해준다.
❓다음 버전이 생겨야, 이전 버전을 깃허브에 올릴 수 있다? X
동기화 시킨 순간 - 동일한 버전 / 수정한 순간! 버전 1.1로 업데이트
히스토리가 있어서 롤백이 가능하다
--협업에서 깃의 필요성
내 pc 에 깃이 깔려있으면, 버전 관리를 로컬로 할 수 있을 뿐만 아니라 깃허브와 소통(백업, 복구,...)할 수 있다.
다른 컴퓨터에도 깃이 깔려있으면, 깃허브를 통해서 소통(다운로드, 복제, 백업,...) 할 수 있다.
내 pc에 깃 설치하기
이미 설치되어있었는데 버전이 `2.41.0` 인다, 24년 4월 기준 `2.44.0`으로 되어있기에 터미널에서 버전 업데이트를 해주었다.
window - cmd 터미널 - `git update-git-for-windows` - y
터미널에 `git -v ` 작성 시, 현재 pc에 설치된 깃 버전을 확인할 수 있다.
CLI vs GUI
CLI : Command Line Interface 명령 줄 인터페이스. 셸(이라는 프로그램;창)에서 글자를 입력해서 pc에게 명령을 내린다. os와 소통하는 프로그램
GUI : Graphic User Interface. 그래픽으로 pc 에게 명령을 내릴 수 있도록, 사용자에게 화면을 제공한다. 마우스 등으로 버튼 클릭
* 터미널 : 특정 프로그램이 아닌, 컴퓨터 전체를 컨트롤한다.
깃 명령어
dir(윈도우) ls(리눅스, 맥) : 폴더 정보 경로 띄워줌
`mkdir 파일명` : make directory 디렉토리를 만든다. 폴더 생성
`cd 경로` : chang directory 경로 이동. 이전 경로로 이동 cd ..
`git init` : 깃 시스템에게 이 폴더를 버전관리 대상이라고, 사용하겠다고 초기화하겠다는 명령어
git init이 성공적으로 수행되면, 숨겨진 폴더에 `.git` 폴더가 생성된다.
나는 폴더에서 숨겨진 폴더를 볼 수있게 해놓아서, `.git` 폴더가 보이면, git이랑 연결되어있는 폴더라고 파악한다.
폴더 → 보기 → 표시 → 숨긴 항목
`git status` : 깃의 현재 상태를 알려달라는 명령어
이때, untracked files? txt 파일이 깃에 추가되지 않았다고 경고가 뜬것! 이 파일들을 하나하나 트래킹(추적) 해달라고 깃에게 명령해야한다.
깃은 시작부터 다 트래킹 하고있지 않는다
`git add 파일명` : 해당 파일 이제부터 트래킹해달라고 명령한다. 버전을 저장하기 전에 관리하고 있는 중!
파일명 대신 `.` 을 할 경우 all. 폴더에 존재하는 모든 파일이 트래킹에 올라간다.
`git commit` : 커밋 메시지 필수! 트래킹 된 파일의 변경된 사항, 지금까지 모은 것들(add) 버전으로 저장한다.
add 로 파일을 대기열에 올리고, commit으로 대기열의 파일을 저장한다. 그후 add 의 대기열 상태는 비어있다. git status로 `nothing to commit` 내용을 확인할 수 있다.
`git log` : commit 된 버전 확인하는 방법.
VSCODE 에서 GUI로 Git 사용하기
git init 초기화 버튼
파일 생성했을때! 호버하면, git 에게 `추적되지 않음` 이라는 메시지가 뜬다
파일을 변경하면, git 소스제어 탭에 change 변경사항에 해당 파일이 뜬다. add 된 상태는 아니지만(untracked), git에서 수정을 감지하고, git add 할껀지, 스테이징 상태로 올릴껀지(tracked) 물어보는 과정.
`+` 버튼이 `git add` 역할! 스테이징된 변경사항 파일의 A가 add 되었다는 상태를 나타낸다
✔️커밋 버튼을 누를때, 상단에 메시지 작성 필수!!
Git history extention 확장 설치
view 를 누르면, 수정된 사항의 파일을 보여준다! git log를 GUI로 보여주는 역할. 좋은 것 같다!
Git Hub 사이트
연동해서 버전관리 하기
깃허브 : 원격 접속 백업. 오픈소스. 마이크로소프트 회사
`git remote -v` : 원격저장소와 폴더를 연동하는 명령어
☑️ 배운 점
git history 익스텐션!
git log를 GUI 화해서 보여준다는 프로그램. 좋은 것 같다. 잘 활용할 수 있을 것 같다!
git add 에 대한 개념 정확히 알기!
commit 하기 전에 단순히 `add .` 명령을 수행하고 있었다. 본능적으로 그냥 해야하는구나.. 하고 생각했는데
이제 정확한 개념을 알아 정확히 커밋 올릴 수 있을 것 같다.