패스트캠퍼스 메가바이트스쿨 Day4 (1주차 목요일 - Git, GitHub 3)

Today Topic : Branch


🗝 Keywords


✅ README.md

✅ .gitignore

✅ Licence

✅ Repository

✅ Branch merge

✅ GitFlow

✅ GitRevert



1. 레퍼지토리 설정

1-1) README.md

  • 프로젝트와 Repository를 설명하는 책의 표지같은 느낌
  • 사람들이 이 파일을 통해서 어떤 내용인지 확인하기 때문에 잘 남겨야함
  • README.md의 작성법

1-2) 라이센스

  • 오픈소스 프로젝트에서는 라이센스가 가장 중요하다
  • 라이센스 설정시에는 깃헙에서 레퍼지토리를 만들 때 설정가능함.

🚀 라이센스의 종류

  • MIT License : 가장 대중적으로 사용함.
  • Apache License 2.0 : 어파치 재단에서 만들었고, 특허권 관련 내용이 포함되어있음.
  • GNU General Public License v3.0 : 가장 많이 알려져있지만, 가장 조심해야함.GNU license가 적용된 소스코드 사용시 무조건 GPL을 따라야하는 의무사항이 존재함. 그래서 이를 위반하면 내용증명 등이 날라올수도 있음.
  • 왠만하면 라이센스는 MIT lice 를 사용할 것.

1-3) .gitignore

  • git으로 하여금 무시할 수 있도록 하는 것이다. 특정 라이브러리를 트래킹하지 않는 설정이 필요할 때 사용하며 대표적으로 React프로젝트를 할 때 그렇다.
  • ignore를 vim에 들어가서 무시할 항목들을 설정 후 cat을 통한 확인 필요
  • new repository 생성시 깃헙 홈페이지에서 선택 설정 가능함

🚀 gitignore 사용예시

  • keyfile.pem : keyfile로 해킹당해 비트코인 채굴하는데 도용당할수있음
  • secrets.*
  • *.java

🚀 ignore.io 사이트

  • ignore.io 사이트에 들어가서 사용언어를 클릭하면 해당되는 .gitignore 항목들이 나옴
  • vi .gitignore에 들어가서 항목들 복붙하면 됨



2. 브랜치

2-1) 브랜치 만들기

git branch 브랜치명 
git switch 브랜치명 
git branch -a 
git branch -D 브랜치명 
touch 파일명 
mv 파일명 변경명 
cat 파일명 

🚀 해설
git branch 브랜치명 : 새로운 브랜치 만들기
git switch 브랜치명 : 브랜치 갈아타기
git branch -a : 모든 브랜치 보기
git branch -D 브랜치명 : 브랜치 삭제
touch 파일명 : 파일 만들기
mv 파일명 변경명 : 파일 이름 바꾸기
cat 파일명 : 파일 미리보기

  • 브랜치는 main이 나옴. *master는 요즘 github에서 사용안함
  • 이전 버전의 브랜치 갈아타기는 git checkout
  • 브랜치에서 touch로 파일 만들고 vi에 들어가서 프린트문 작성 후 실행 언어로 잘 나오는지 확인

2-2) 브랜치 머지하기

  • 합병하고자하는 상위 브랜치로 switch한 이후에 git merge 브랜치명을 상위 브랜치에 해당 브랜치가 합병됨

🚀 브랜치 머지 시 충돌이 났을 경우

  • 다음과 같이 머지 충돌이 났을 경우에는 충돌이 난 파일에 가서 해결을 해주면 됨.
  • 위에서 hello.py에 vim으로 들어가서 해당 파일을 수정하면 됨.
  • 머지 충돌 해결 후 git status를 보면 unmerged path가 보임
  • 이는 add hello.py로 커밋을 추가한 뒤에 status를 확인하면 해결
  • 이 상태에서 커밋을 하면 에러가 안 뜸

🚀 주의!

  • 여기서 머지할 때 메인 브랜치에서만 머지를 했기 때문에 깃헙(리모트)는 메인 브랜치만 수정이 되어 무엇을 머지했는지는 보이지 않음
  • 만약, 리모트에 해당 정보를 남기고 싶으면 머지한 브랜치(repeat-hello)도 푸시를 해줘야함.

2-4) 리모트에 없던 브랜치에 푸시를 하고 싶을 경우

git push -u origin 브랜치명

  • 원래는 머지의 흔적이 없었으나, 이제는 머지한 브랜치가 명시 되었음.
  • -u는 리모트에 없는 브랜치를 만들건데, 로컬과 동일하니까 반영해달라는 의미


3) Git Flow

3-1) 브랜치 모델

🚀 GitFlow strategy

3-2) Git Flow 설치 및 실행

Gitflow 사용법



4. GitRevert

mv 브랜치명 변경명 (deleted, new file)
git mv 브랜치명 변경명 (renamed)

🚀 해설

  • mv로 이름을 변경했을 때는 파일이 삭제되고, 새롭게 생성되는 것으로 기록됨
  • 이를 예방하기 위해서 git mv를 이용하여 renamed 하는 것이 좋음
git restore 브랜치명
git reset HEAD 브랜치명

🚀 해설



5. Github 실습

5-1) Fork / Clone

  • 갖고오고자 하는 사람의 github 주소의 repository에 들어가서 오른쪽 상단의 Fork 버튼 눌러서 진행
  • 내 터미널에서 git clone 주소 입력 후 내 파일에 생성하기
  • 들어가서 git flow init 실행 후 develop 브랜치에서 작업하기

5-2) Pull Request

  • push까지 마무리 했다면, 자신의 깃헙 레퍼지토리에서 확인 후 전달하기
  • 화살표 표시를 통해 전달하는 사람과 전달받는 사람 구분을 잘 해야함
  • 특히, base branch를 main,develop,feature등 확인을 잘 하고 해야함

좋은 웹페이지 즐겨찾기