GIT
- git은 주로 작업물(파일)에 대해 백업 역활을 함.
- 주로 파일을 백업폴더에 저장해서 관리해주는 역활을 함.
- 팀작업에 주로 사용하며, 여러명이 여러개의 프로젝트를 분할하여 작업하고 병합 할때 유용함.
GIT 기본 용어
git 흐름도

- Repository (저장소)
- 내가 직접적으로 작업하고 있는 파일 및 주소
- 작업 내용을 기록
- local repository (로컬저장소)
- 내 컴퓨터 안에 있는 저장소
- 인터넷 환경이 필요한 작업 공간이 아님
- remote repository (원격저장소)
- 원격 서버에 있는 저장소
- 원격 서버를 이용함으로 네트워크가 필요하며, github 등이 있음.
- commit
- 작업 상태를 마치고 저장소에 저장하는 작업
- branch
- 가지 또는 분기점
- 작업을 할때에 현재 상태를 복사하여 branch에서 작업을 한 후에 완전하다 싶을때 merge하여 작업함.
GIT 기본 명령어
- git init
- Git 저장소(레포지토리) 생성
- rm -rf .git
- Git 저장소(레포지토리) 삭제
- ls -al
- 파일 리스트 확인 (숨김 파일 포함)
- Git 저장소는 숨김 파일임으로 -al 추가하여 확인하여야함
- git config --global init.defaultBranch
- 디폴트 브랜치명 확인
- git config --global init.defualtBranch [브랜치 명]
- 디폴트 브랜치명 설정(변경)
- 명령어 사용 후 git 저장소를 지우고 다시 생성하여 브랜치명이 바뀌는 것을 확인 할 것.
- git status
-
git 저장 상태 확인

1) 빨간색 파일 : 저장소에 반영되지 않은 파일
2) 녹색 파일 : 저장소에 반영할 준비가 된 파일(git add를 한 상태)
- git add 파일명
- 해당 파일을 index에 넣는다.
- 메시지 기록후 저장소에 저장
- git config user.name "github 닉네임"
- 유저 닉네임 등록
- git config user.email "github e-mail"
- 유저 이메일 등록
GIT remote repository
- 원격 레포지터리를 이용시 개인이 장소 제약 없이 작업이 가능함.
- github 라는 웹사이트를 이용하여 remote repository를 만듬.

repository 이름을 정하고 공개 비공개 여부를 선택후 생성 후 링크를 통하여 쉽게 로컬 레포지토리와 연결 할 수 있다.
remote repository 등록하기
- 등록된 원격저장소 확인
- git remote -v

- 아무것도 없을시 표시되지 않는다.
- github에서 생성한 원격 저장소의 주소를 이용하여 원격저장소 등록
- git remote add first(원격저장소 명칭) https:github.com/~ (github에서 생성한 원격저장소 주소)
- git remote -v
- 다시 한번 입력시 원격저장소(first_test)가 등록되어 있음을 확인

git remote repository에 push 하는 법
- 원격저장소의 main 브랜치로 이력 공유하기
- git push first_test main

- 정상적으로 psuh 된 모습
- 처음으로 컴퓨터에서 push를 진행 한 경우 원격저장소에 아이디/비밀번호를 입력하지 않아 진행되지 않음
- sign in browser 창이 뜨면 아이디 비번을 입력한 후 진행하면 정상적으로 push가 완료
git remote repository에 fetch 하는 법
- 원격저장소에 push된 자료를 통해 가져오고 싶은 로컬 저장소에 fetch를 진행한다.
- git fetch first_test main
- 원격저장소의 main 브랜치 이력을 가져옴.

- fetch를 진행하여도 workspace 상에는 보이지 않는 파일임.

- 원격저장소에서 가져온 이력을 내 작업폴더와 동기화 시키는 작업이 필요함.
- git merge first_test/main

- workspace에 정상적으로 동기화 된 모습

=============================================================
git에 대해서 처음 들어 걱정스럽기도 했으나 실습 진행 후 반복 하다보니 어느 정도 갈피는 잡힌거 같음.
학습도 중요하지만 복습이 중요한 과정 같음. 주로 수업에서 배웠던 내용을 집에서 반복하면서 직접적으로 깨닫는 것이 중요하다고 느낌.
오류에 대한 상황을 재현해보면서 해결하는 방향으로 가다보면 문제를 해결 할 수 있을 것 같음.
많이 부족하다고 느끼기에 열심히 해야겠다는 생각 밖에 들지 않는다.
=============================================================