본문 바로가기
내배캠 강의&질의

git

by 코드뭉치 2023. 4. 6.

 

---

깃허브에 push하기

clone하기

pull하기

 

---이번시간

버전 만들기(비교/임시저장/되돌리기)

브랜치

fetch, pull

 

@작업 내역 비교

 

깃은 작업 디렉토리 w.d(working directory)

버전이 될 후보 stage

저장되는 곳 repo

 

git diff

wd와 가장 최근 버전의 repo를 비교해 변경사항들을 알려준다.

git add를 통해서 stage에 올라가면, 

git diff --staged를 통해 변경사항을 비교할 수 있다.

 

git log에 커밋마다 붙어있는 고유한 해쉬번호를 사용해서

git diff <커밋해쉬><커밋해쉬>를 통해 커밋끼리 비교할 수 있다.

이때, 순서가 중요하다.

git diff <이 커밋에 비해><이 커밋이 뭐가 다른지>를 표시해준다

 

git log --oneline 으로 출력하면, 짧은 해쉬를 보여주는데

이 짧은 해쉬를 사용해도 같은 결과를 낼 수 있다.

 

@작업 되돌리기

되돌리는 두가지 방법

revert > 버전을 되돌린 새로운 버전 만들기, 지금까지의 작업 내역에는 영향이 없음

reset > 버전을 완전히 되돌리기, 지금까지의 작업내역에 영향

 soft reset

 mixed reset(기본 옵)

 hard reset

 

하나의 버전

1. wd에서 변경사항 생성

2. 스테이지로 추가

3. 저장소로 커밋

soft reset은 저장소로 커밋한 사실만 되돌아감

mixed reset은 스테이지로 추가한 사실까지 되돌아감

 

revert도 기록에 남나요?

>yes, reset은 log에도 남지않는다.

 

git push -f

강제 푸쉬 

 

많이 실수하는 것

git revert <취소할 커밋 해쉬>

git reset <되돌아갈 커밋 해쉬>

를 써야한다

 

git stash 변경사항 임시 저장하기

git stash -m "<메시지>" 메시지와 함께 임시 저장

git stash list 임시저장된 작업 내역 조회

 

stash@{0}:

              ^이 숫자는 최근에 저장된 항목일 수록 0에 가깝다.

 

git stash apply 임시저장 항목 적용하기.

 

git stash drop 임시저장 항목 삭제하기

 

 

 

 

 

 

 

 

 

 

브랜치는 버전을 여러개의 흐름으로 관리하는 방법

브랜치는 버전의 분기이다.

 

 

주니어개발자 이력서를 볼때

깃 push만 되어있는것보다 branch관리와 commit log가 얼마나 깔끔한지

commit 메시지를 잘 쓰는것이 더 좋다.

 

 

 

브랜치가 없으면?

서로의 작업과 전혀 관련없는 부분, 같은 코드를 다르게 수정한 부분 혼재

1. 브랜치를 나눈다

2. 각자의 브랜치에서 작업한다.

3. (필요 시)나눈 브랜치를 합친다.

.

master 브랜치는 가장 기본적인, 최초의 브랜치

최근의 기본 브랜치는 master의 차별적인 어감때문에 main으로 변경되어있다.

 

 

같은 부분을 다르게 수정하면 conflict 충돌이 발생

 

브랜치의 이름은 막 지어도 되나요? - 브랜치 전략

브랜치 이름을 보고 어떤 목적으로 만든 브랜치인지 알아볼수 있어야한다.

 

브랜치 전략은 회사마다 다르다.

 

 

체크아웃 

 

라이브쉐어를 통해 협업을 하면 기록이 x

> 나중에 포트폴리오로 쓸 수 없다..

 

 

pr

pull request

 

1. fork

다른사람 원격 저장소를 복제해서 내 원격 저장소로 가져오기

2. clone

가져온 내 원격 저장소의 파일을 내 로컬로 클론

3. 브랜치

브랜치 생성 후 그 브랜치에서 작업 (main은 x)

4. git push origin <작업 브랜치명>

작업 브랜치 푸시하기

5. create pull request

버튼을 누르면 pr이 보내진다.

 

 

 

댓글