햄발
Git 저장소 본문
Git 저장소(Git repository)
파일이나 폴더를 저장해 두는 곳
원격 저장소(Remote Repository)
- gitHub와 같은 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소
로컬 저장소(Local Repository)
- 내 PC에 파일이 저장되는 개인 전용 저장소
반드시 기억해야 할 3 상태
논리적인 구분
Git bash
- git bash는 window의 cmd , linux와 mac의 terminal 과 같은 역할을 한다.
- Git bash를 이용하면 window 에서도 리눅스의 명령어를 쓸 수 있다.
Git 명령어
init
git init 명령어를 수행하면 숨겨진 폴더 .git 이 생성된다.
이것을 저장소라고 하는데 깃은 이 폴더의 모든 변경 내용을 여기에 저장한다.
즉 .git 폴더를 지우면 더 이상 깃으로 폴더의 변경사항을 추적할 수 없다.
status
깃이 폴더의 현재 변경 상태를 보는 명령어 이다.
reset
스테이징 된 (add 취소) 파일을 취소할 수 있다.
폴더의 전체 변경 사항을 취소할 수 도 있다.
commit
깃이 폴더의 변경 내용을 장하는 단위를 "커밋(commit)"이라고 부른다.
add 명령어 이후 Staging Area 상태에 등록된 파일들만 commit 을 할 수 있고 명령어 실행 후에 Repository에 저장된다.
매번 변경사항을 스테이징하고 커밋 하는 게 번거롭다면 -a 옵션을 사용하면 된다.
log
스테이징을 거쳐 커밋 한 결과를 로그(log) 라는 형식으로 확인한다.
많은 로그를 한 줄로 편하게 보기 위해서 --oneline 옵션도 자주 사용한다.
push

파일을 새로 생성 또는 작업 후 add, commit 을 마치고 원격 저장소로 작업물을 공개 할 수 있다.
SSH 키 등록 후 원격 저장소(Git Hub)에 처음 push를 한다면 다음과 같은 문구를 확인할 수 있다.
pull

원격 저장소에서 로컬 저장소로 소스나 변경된 파일을 가져오는 명령어다.
branch

로컬 저장소에 있는 현재 브랜치 목록을 보여 준다.

checkout

깃에서 브랜치 간 이동은 "checkout"라고 표현한다.
log --graph

현재 repository의 작업 흐름(branch, commit, merge)에 대하여 알아보기 쉽게 그래프로 보여준다.
merge

원격 저장소 만들기
Create repository
원격 저장소를 내 PC로 가져 오기
- HTTPS 방식 으로 가져 오기
- SSH 방식 으로 가져 오기
Clone
사용할 위치를 지정하고 Git Bash를 열어서 원격지에 생성된 저장소를 복제할 수 있습니다.

원격 저장소에 작업물 공개 하기
1 . SSH Key를 만들고 public key를 GitHub에 등록
(Secure Shell)는 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜이다.
GitHub 접속할 때 비밀번호 대신 key를 제출하는 방식이다.
2. Git Bash에서 명령어 ssh-keygen 을 입력해주세요


3. 생성된 private, public key
4. 생성한 공개키를 GitHub에 등록
profile → Settings → SSH and GPG Keys
브랜치 만들어 보기
- 깃에서 중요한 또 하나의 개념은 "브랜치(branch)"입니다.
- 깃은 기본적으로 master(main)라는 이름의 브랜치 하나를 가지고 있습니다.
병합하기(merge)
feature 브랜치에서 개발을 완료 후 커밋하고 다시 원래 작업하던 곳으로 가기 위해서는 main 브랜치에
반영해야 한다. 이것을 merge이라고 부른다.
! 단 기준이 되는 main 브랜치로 이동한 뒤, feature 브랜치를 main에 merge 해야 합니다 !
HEAD
- 위치를 좀 더 정확하게 보여주는 정보가 있는데 바로 "머리(HEAD)"라고 부르는 것입니다.
- 헤드는 여러 가지로 뻗어있는 브랜치와 커밋 목록에서 현재 위치를 보여 줍니다.

- 현재 위치(HEAD) 에서 한 단계 과거로 가는 명령어 입니다.
- 현재 위치에서 해당하는 숫자만큼 과거로 갑니다.
- HEAD 대신 커밋 hash를 사용할 수도 있다. (콕 집어서 이동합니다)
다시 최신으로 돌아오고 싶다면