1. Git의 과거
2000만줄
30년 진행
오픈소스
12000명 개발
이 위는 리누스 토발츠가 제작한 리눅스의 특징입니다.
보기만 해도 어지럽죠..? 이를 관리하기 위해서
토발츠는 깃을 제작했습니다.
그리고 한마디로 이렇게 소개했다고 합니다.
Information manager from hell (지옥에서 온 정보 관리자)
Git은 디버깅을 위해 만들어졌습니다.
따라서, Git에 저장되는 버전은 작을 수록 좋고
각각의 버전이 무슨 작업을 했는지 기술되어 있어야합니다.
디버깅 : 프로그래밍에서 잘못된 부분을 찾아 고치는 것
2. Visual Studio Code로 Git 시작
VSC에 Git 클라이언트는 Git Bash(터미널)을 손쉽게 사용할 수 있도록 해줍니다.
처음 git을 사용하시는 분들이라면 커밋 시, 다음과 같은 오류사항이 나올 겁니다.
이를 구성하기 위해 터미널 > 새터미널에 들어가서 Git Bash 선택하고
기본 프로필을 Git Bash로 선택해 두는게 좋습니다.
2-1 user의 name과 email 등록하기
터미널에 다음 명령어를 작성합니다.
git config --global user.name "이름"
git config --global user.email "이메일"
2-2 Visual Studio Code 단축키
Ctrl + , : 설정기능
Ctrl + J : 터미널 키기
Ctrl + B : 지우기
Ctrl + K + M : 작은 창 늘리기
3. Git 확인하기
git log
git log --oneline
git log --oneline --graph --all
Q종료
Git Graph는 Git을 확인하기 쉽게 만들어 줍니다.
4. Git 언어 정리
- Commit ID
버전 내용을 기반으로한 고유한 식별자 ID (SHA1 - HASH를 사용)
Git은 모든 것을 기록하기 때문에 commit id만 있으면 복구가 가능하기 때문에
중요 작업이라면 commit ID를 캡쳐해두는게 좋다.
git reflog
git checkout (COMMITID)
reflog : 이전에 HEAD가 가리키고 있었던 내용들을 전부 기록
checkout : 해당 커밋아이디로 이동
(다시 최신 커밋으로 돌아갈 때는 커밋 아이디 대신 -)
- Main
main은 마지막 작업이다.
마지막 commit ID을 나타내며, 새로운 커밋아이디를 결정한다.
- Head
마지막 버전은 HEAD가 가리키는 곳에 기록된다.
HEAD는 working directory의 버전이며 처음엔 Main을 가리킨다.
- Checkout
CheckOut은 HEAD를 바꾼다.
과거로 돌아가고 싶으면 원하는 버전에 Checkout을
돌아오고 싶으면 원하는 버전에 Checkout Branch Or main버튼 더블클릭 한다.
- Branch
여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능으로 Head가 가리키는 것
- Merge
Branch와 Branch를 병합하는 것
- Deatached HEAD state
head가 branch를 통해 간접적으로 commit을 가리키지 않고 직접 커밋을 가리키는 것
1. 새로운 Branch 생성
2. main으로 다시 checkout한 후 커밋하면 새로운 길이 생성됌
3. 브렌치를 합치고 싶으면 원하는 브렌치에서 아래 버튼 클릭하기
- conflict
merge 진행 중, 같은 파일이 변경되었을때 브랜치 중 어떤걸 선택하여 합칠지 고르는 경우
- base
부모 마지막 파일과 브렌치 마지막 파일들을 모두 모아서 변경된 파일들을 병합해 보는 것
merge를 했는데 충돌이 일어나면 base중에 골라서 수정이 가능하다.
- reset
checkout은 HEAD를 바꾼다.
reset은 HEAD가 가리키는 브랜치를 바꾼다.
현재를 없애고 과거로 돌아가고 싶으면 reset을 한다.
5. github Repository 생성
6. 원격 저장소와 로컬 저장소 - 원격 연결
6-1. https로 연결
원격 추가 > https 붙여넣기 > 이름 적기 (origin) > 알림 No
6-2. ssh로 연결
ls -al ~/.ssh
cat ~/.ssh/어떤이름.pub
명렁어에서 나온 SSH 모두 카피한 후
github 프로필 > settings > ssh and GPG keys > New SSH key 클릭 후 붙여넣기
만약 이미 origin이 있다면 다음 명령어 작성하기
git remote remove origin
다음은 HTTPS연결과 똑같이 진행
7. Clone하기
- clone
원격저장소를 로컬저장소로 불러오는 것
다음 클릭하고 Repository의 https, ssh을 넣으면 어느 파일로 가져올지 정한다.
- rejected
원격저장소에 commit된게 있는데
다른 로컬저장소에 commit되지 않았을때
커밋하고 해라~ 하는게 fetch
- fetch
원격 저장소에 commit된게 있는데 로컬 저장소에 commit되어 있지 않다면 rejected 오류가 뜬다.
이를 막기 위해 확인해 보는것이 fetch이다.
로컬 저장소로 다운로드하지만, 로컬 브랜치에는 아무런 영향을 미치지 않는다.
- pull
fetch + merge 이며
원격 저장소의 최신 변경 사항을 로컬 저장소로 가져오고 로컬 브랜치와 병합한다.
- push
로컬 저장소에 커밋한 것을 원격 저장소로 업로드한다.
Git을 통해서 Aivle스쿨에 배운 내용들을 올리고
제 것으로 만들어야 겠다고 다짐한 하루였습니다!
'KT AIVLE School > Start' 카테고리의 다른 글
Jupyter Notebook (1) | 2024.09.05 |
---|---|
KT AIVLE School - Opening Day (2) | 2024.09.04 |
KT AIVLE School 합격 및 이후 계획 (7) | 2024.09.02 |