[git]간단하게 알짜배기만 총 정리

2023. 6. 7. 12:56programing/git

반응형

안녕하세요 git에 대해서 정리하는 시간을 갖고 정리해봤습니다.

프로젝트를 하면 버전관리툴을 사용하는 것이 불가피 합니다. 고로 개발만큼 중요하고 개발의 일부분이라고 할 수 있습니다.

 

git을 왜 쓰냐?

한줄로 요약하면 개발한 소스를 백업하고 함께 협업하기 위해서 입니다.

보통 프로젝트를 진행하면 혼자 하지 않고, 여럿이 합니다. 여러사람이 소스를 공유할 수 있고, 혼자 진행하더라도 개발한 소스를 항상 백업 할 수있습니다.

 

기본 사용

https://git-scm.com/에서 다운받아 설치하시면 됩니다.

설치를 하고 터미널을 실행해서 개발프로젝트 폴더 경로에서 여러가지 git 명령어를 실행해보실 수 있습니다.

 

git의 기본적인 저장 구조

repository생성: git init

브랜치생성 : git branch 브랜치명

브랜치이동 : git switch 브랜치명

git add 경로or파일명 : staging area에 저장

git commit -m “코멘트” : repository에 저장

브랜치합치기, 기준 브랜치 이동 후 : git merge 브랜치명

충돌해결은 코드 고치고 : git add 경로 & git commit -m “코멘트”

 

다양한 merge 방법

다양한 merge 방법

  1. 3-way : 기준브랜치 변경내역 존재, 새로운 브랜치 변경내역존재, 기준브랜치로 이동후 머지
  2. fast-forward : 기준브랜치 변경내역 없음, 새로운 브랜치 변경내역존재, 기준브랜치로 이동후 머지
  3. squash : 3-way merge처럼 선으로 이어주지 않고 새 브랜치에 있던 코드변경사항들이 main 브랜치로 텔레포트

   git switch main

   git merge --squash 브랜치명

   git commit -m '메세지’

 

  4. rebase : rebase는 브랜치의 시작점을 다른 commit으로 옮겨주는 행위입니다.

   1)rebase를 이용해서 신규브랜치의 시작점을 main 브랜치 최근 commit으로 옮긴 다음

   2)fast-forward merge하는 것

git switch 새로운브랜치 git rebase main git switch main git merge 새로운브랜치 rebase & merge를 한 줄로 쉽게 비유하자면 강제 fast-forward merge

3-way merge
fast-forward merge
squash merge

 

rebase merge

 

 

repository

git은 파일버전을 저장해두는 장소를 repository라고 함.

로컬 작업폴더엔 .git폴더가 있는데 그게 repository임.

실제로 개발 협업시엔 온라인 repository를 많이 사용함.

나의 로컬 repository를 온라인으로 저장하는 용도(백업)

회사마다 각자의 repository를 사용하지만, 사람들이 많이 쓰는 온라인 repository를 github.com에서 만들수 있음.

우리가 commit한 내용을 push(올리기) 또는 pull(내려받기)하는 것이 온라인 repository를 목적지로 하여 사용하는 것임.

 

로컬저장소 → 원격저장소

이렇게 업로드 하고 싶으면 : [git push 원격저장소주소 브랜치명]

원격저장소주소 변수설정 : [git remote add 변수명 원격저장소주소]

원격저장소 복제(신규) : [git clone 원격저장소주소]

git pull 원격저장소주소 : 이러면 원격저장소에 있던 모든 브랜치 내용을 가져와서 로컬저장소에 합치라는 뜻입니다.

이걸 해주면 로컬이 최신상태가 되기 때문에 이제 git push가 가능합니다.

결론은 변동사항이 생겼다면 git pull 하고 나서 git push 하면 됩니다.

git pull명령어는 git fetch(원격저장소에 있는 commit중에 로컬에 없는 신규 commit을 가져오는 것) + git mege 축약임.

 

충돌을 줄이려면 push하기전에 pull 먼저하기!(충돌 해결하는 시간 아까움)

 

반응형