git 자주 쓰는 명령어
1. git init
git init을 치면 .git이라는 파일이 들어감.
git status로 확인해보면 파일 안의 모든 파일들을 추적하고 있지 않음.
- gui로 하는 법
2. git add 파일명
파일 옆 U(untract): git이 트래킹하고 있지 않은 파일
git add .
git add . ( .은 모든 파일을 의미한다.)
git add .이후 git status로 확인하면
파일 트래킹 요청, 모으는중이라고 생각하면 된다.
버전 저장 전 .git 에서 관리중
-gui로 하는 법
3. git commit
- commit이란?
커밋하면 Git은 현 Staging Area에 있는 데이터의 스냅샷에 대한 포인터, 저자나 커밋 메시지 같은 메타데이터, 이전 커밋에 대한 포인터 등을 포함하는 커밋 개체(커밋 Object)를 저장한다. 이전 커밋 포인터가 있어서 현재 커밋이 무엇을 기준으로 바뀌었는지를 알 수 있다. 최초 커밋을 제외한 나머지 커밋은 이전 커밋 포인터가 적어도 하나씩 있고 브랜치를 합친 Merge 커밋 같은 경우에는 이전 커밋 포인터가 여러 개 있다.
다음은 파일이 3개인 디렉토리를 commit한 경우이다.
그 이후 커밋을 하면 다음과 같아진다.
첫 커밋이었던 98ca9 이루로는 parent에 이전 commit 포인터가 있다. commit을 하면 자동으로 master가 마지막 커밋을 가리킨다.
즉 head는 master 브랜치를, master 브랜치는 마지막 커밋을 가리키고 있다.
원래는 commit을 git commit -m " "으로 사용했었는데 새로운 방법으로 git commit 만 사용하는 방법으로 알려주셨다!
터미널에서 -m ""하고 작성하는 것과 비교해 장점은 커밋 메세지를 두줄 이상 쓰기 편리하다.
git commit -m " "으로 작성한다 하더라도 따옴표를 닫지 않고 엔터를 누르면 다음 줄으로 인식한다.
git commit
1. .git에서 커밋메세지입력
해당 화면이 열리는데 아래처럼 커밋메세지를 작성한다.
작성 후 우측 상단의 체크 표시를 누르면 커밋이 된다.
2 . 터미널에서 커밋메세지 입력
뭐가 다른지 모르겠지만 노트북에서는 git commit만 치니 강사님과 같이 나온다.
요런 창이 나오고 c를 두눌렀더니 insert모드로 바뀐다.
그 후 커밋 메세지를 작성 후 esc를 누르면 insert모드가 사라진다. 그 후 shift+:를 누르면 모드가 바뀌고 w(끝) q(닫음) 엔터를 순서대로 누르면 커밋메세지 작성이 끝난다.
지금까지 add로 모은 것을 이용해 버전을 만드는 과정, .git 에서 대기하고 있던 저장중이 없어지고 버전이 만들어짐
"
-gui로
4. git log
log를 확인할 수 있다.
- gui로 하는 법 (확장프로그램으로 git 히스토리 확인하기)
previous를 보면 이전 버전과 비교도 가능해서 정말 유용할 것 같다.
git hub와 연결하기
그 전에! 이 모든 기능을 무료로 제공하는 git hub를 회사는 마이크로 소프트이다. 오픈소스 커뮤니티의 발판이 되어주기도 함.
1. git remote -v
git remote -v
이렇게 나온다.
나는 git init을 한 파일을 올릴 것이기 때문에 어렵지 않게 아래의 박스의 명령어를 따라서 실행시키면 된다!
git remote add <깃허브레포지토리> <주소>
참고 - default 브랜치 바꾸기
- master와 main
로컬에서 git init을 하면 default 브랜치의 이름이 master가 된다.
github에서 만들면 default가 main이 된다.
참고로 default branch의 이름은 큰 의미가 없다. 다른 브랜치와 기능상으로는 다를 것이 없다. 자동으로 처음 만들어지는 이름이고 바꾸지 않을 뿐이다.
- 왜 다른 이름인가?
최근 주종관계를 뜻하는 master slave가 노예제도를 연상하기에 github에서는 main으로 변경했다고 한다.
- 강의에서
강사님은 git branch -M main없이 바로 push를 main으로 하셨다!
log를 봐도 바로 head가 main을 향하고 있다.
나는 처음에 head가 master를 향하고 있는 것을 볼 수 있다.
git push origin main 입력
결과-> main이 없다고 한다.
git push origin master
결과 -> master에는 저장된 것을 볼 수 있다.
그렇다면 git branch -M main을 한 이후 push를 하면 어떨까
그렇다면 디폴트를 바꿔보자. 다음 코드대로 하면 된다. 순서대로 브랜치의 이름을 master를 main으로 변경, 변경된 내용을 원격 저장소로 전송, 원격 저장소의 기본 브랜치를 설정하는 코드이다.
git checkout master
git branch main master -f
git checkout main
git push origin main -f
그게 아니라면 GUI로 레포지토리 안 settings에서 default branch를 바꿀수도 있다.
참고 - default 브랜치 초기 설정
- init할 때
처음부터 init을 할 때 main을 디폴트 브랜치 이름으로 하고싶은 경우는 다음 코드를 치면 된다. global이기 때문에 해당 기기에서는 계속 적용된다.
git config --global init.defaultBranch main
- 앞으로 github에서 저장되는 이름을 바꾸고 싶은 경우
github에서 setting-> repository에 들어가면 앞으로 github를 통해 생성될 repo의 default branch의 이름을 바꿀수도 있다
공부하며 작성한 글입니다. 틀린점이 있다면 알려주세요!
'타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) > TIL' 카테고리의 다른 글
웹 풀사이클 데브코스 TIL 5일차 - branch, 깃 플로우, merge (0) | 2023.11.21 |
---|---|
웹 풀사이클 데브코스 TIL 4일차 - 토큰, 레포지토리 받아오기, branch란? (0) | 2023.11.20 |
웹 풀사이클 데브코스 TIL 2일차 - 버전관리 시스템, git (0) | 2023.11.15 |
웹 풀사이클 데브코스 TIL 1일차 - 프로젝트, Markdown (0) | 2023.11.15 |
[프로그래머스] 데브코스 웹풀사이클 1기 합격 후기 (0) | 2023.11.15 |