패스트캠퍼스 메가바이트스쿨 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 설치 및 실행
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등 확인을 잘 하고 해야함
Author And Source
이 문제에 관하여(패스트캠퍼스 메가바이트스쿨 Day4 (1주차 목요일 - Git, GitHub 3)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ctaaag/패스트캠퍼스-메가바이트스쿨-Day4-1주차-목요일-Git-GitHub-3저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)