카테고리 없음

git과 github

왕초보코딩러 2024. 9. 12. 22:17
728x90

깃과 깃허브

Git: 내 것. 개인 버전 관리 툴

Github: 공동 저장소(Remote Repository)

 

깃허브의 용도

1. 백업

2. 버전 관리

3. 협업

 

깃의 논리적인 3개의 차원(물리적으로는 하나)

1. Working Directory: 깃이 추적하지 않는다(버전 추적 X)

2. Staging Area: 깃이 추적하는 공간

3. Local Repository: Remote Repository에 올리기 전 공간

 

Working Directory -> Staging Area -> Local Repository -> Remote Repository

                            git add              git commit                   git push


현재 디렉토리 기준 git 저장소 생성(.git 폴더 생성)

git init

 

git 환경에서 사용할 사용자 이름, 이메일 지정

git config user.name "이름"
git config user.email "이메일"

현재 git 폴더에서만 사용 가능

 

--global 옵션

현재 git 폴더에서 뿐만 아니라 다른 곳에서도 사용할 수 있음

 

 

git 상태 확인(Working Directory와 Staging Area)

git status

빨간색: Working Directory

초록색: Staging Area (add 하면)

 

Working Directory -> Staging Area

git add [파일 이름]

 

Working Directory에 있는 거 모두 Staging Area로 올리겠다

git add .

 

Staging Area -> Working Directory

git restore --staged [파일명]

 

 

 

Staging Area -> Local Repository

git commit -m "메세지"

 

커밋 내역 확인

git log

(커밋 내역은 git status에서 확인 불가)

 

--oneline 옵션

한 줄로 확인

 

 

Remote Repository에 연결

git remote add [별칭] [깃허브 주소]

별칭은 origin으로 한다

 

원격 저장소에 연결 되었는지 확인

git remote -v

 

 

 

Local Repository -> Remote Repository

git push -u [별칭] [브랜치]

 

Remote Repository의 변경 사항을 push 하기 전에 받아 온다(코드 충돌을 대비하여)

변경 사항이 현재 브런치에 반영되지 않는다

git fetch

 

변경 사항이 현재 브런치에 반영된다

git pull [별칭] [브랜치 이름]

충돌했다면 어느 것을 사용할 것인지 판단 -> 다시 Local Repository까지 올려서 push

 

 

https://velog.io/@yena1025/git-fetch%EC%99%80-git-pull%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

git fetch와 git pull의 차이

git fetch와 git pull

velog.io

 

 

이전 시점으로 되돌리기(버전 관리)

git revert [commit 주소]

git log를 통해 commit 주소를 알아낸다


브랜치들을 보여주고 현재 브랜치 표시

git branch

한 번도 커밋을 하지 않았다면 보여주지 않음

 

브랜치 생성

git branch [브랜치 이름]

 

브랜치 삭제

git branch -d [브랜치 이름]

 

브랜치 이름 변경

git branch -m [브랜치 이름(없으면 현재 브랜치)] [변경할 브랜치 이름]

 

브랜치 이동

git checkout [브랜치 이름]
git switch [브랜치 이름]

 

브랜치 생성하면서 이동

git checkout -b [브랜치 이름]

 

브랜치 병합

git merge [브랜치 이름]

지정한 브랜치의 변경 내역을 현재 HEAD 포인터가 가리키는 브랜치에 반영

 


다른 사람의 깃허브 주소로 Local에 다운 받기

git clone [깃허브 주소]