3일차 Git & Github - Github 블로그 만들기, Branch, Git Flow

변승훈·2022년 3월 30일
0

1. Gitignore & README.md

  • README.md : 프로젝트를 설명하는 파일, 가장 중요한 역할, 문서화의 일부이다.
    이름, 한줄요약, 데모페이지, 어떻게 설치, 지원, 버전, 라이센스등을 포함해서 작성한다.

*https://github.com/angular/angular : reference에 가까운 문서이므로 참고해보자.

  • License : 오픈소스 라이브러리, 프로젝트에 작성, 자칫 잘못하면 오픈되지 않은 소스인데 사용했다가 돈을 내거나 내 소스가 전부 공개되는 현상이 일어난다.
    고로 License를 잘 확인해 봐야 한다. 보통 MIT License를 사용하며
    ★GPL이 있는지 잘 확인하자. 사용하고 보니 GPL에 있는 코드면 법정 소송으로 가야한다..

  • .gitignore : github에 올리지 않아도 되는 (cash파일, 공통파일, 용량이 큰 파일) 파일들을 무시하는 역할이다.
    vi .gitignore로 들어가서 index.* 등등을 작성 하고 git status를 이용하여 확인해보면 gitignore에 입력된 해당 파일들은 git add 시 대상에 포함되지 않게 된다.

2. Github 블로그 만들기

2-1. Github 블로그 만들기

  1. github에 들어가서 새 repository를 생성한다.
  • Repository name : 내계정 .github.io
  • Add a README.md
  • Choose a License

위의 3가지를 확인하고 생성을 한 뒤 dev에서 내계정.github.io를 git clone을 한다.

  1. 이후 README.md 수정 및 index.html작성 후 add commit 작업을 한다.

  2. git push origin main 이후 내계정 이름.github.io를 url로 입력 시 index.html 화면이 나오게 된다.

2-2. node.js설치

  1. node.js.org 에 접속하여 LT버전을 다운 받아 실행시킨다.

  2. 다운 받은 이후 터미널로 가서 npm -v , node -v로 설치가 됐는지 확인한다.

  3. 이후 Github 블로그 폴더로 이동하여 hexo를 설치한다.
    npm install -g hexo-cli

  4. 설치가 완료됐으면 hexo 를 입력하여 확인한다.
    ★hexo명령은 congit.yml이 있는 곳 에서 해야 한다.

  5. dev로 돌아가서 hexo init ghblog를 실행한다.

  6. ghblog로 들어가서 npm install , npm -v으로 확인한다.

2-3. 첫글 작성 방법 예시

  1. hexo new post "My first post" vi source/_posts/My-first-post.md 이후 vi My-first-post.md 로 vim을 편집을 하여
    내용을 작성한다.

  2. 작성이 완료 되었으면 hexo server를 입력 후 나오게 되는 localhost로 접속을 하여
    코드대로 화면이 잘 나오는지 확인을 한다.
    해당 작업을 종료하고 싶다면 ctrl + c 로 종료가 가능하다.

  3. 이후 vi _config.yml 로 들어가 숫자를 입력하면 해당 줄로 이동하게 되는데
    100을 입력하여 #Deployment가 있는 곳으로 이동하자.
    아래와 같이 수정을 한 뒤 저장해주자.

    deploy:
    type: git
    repo: 나의 깃허브블로그 repository주소(clone주소)
    branch: main

  4. npm install hexo-deployer-git --save 를 해주고
    hexo clean && hexo deploy 를 해주면 localhost로 접속하여 확인할 수 있다.

  5. Next 테마적용을 해보자. 먼저 npm install hexo-theme-next 을 입력하고 이후 vi _config.yml에서 작업을 진행하면 된다.

  6. Extensions의 theme의 landscape를 next로 바꿔준다.

  7. 이후 hexo clean && hexo deploy 를 입력하면 NEXT TTAG가 그려진다면 잘 진행한 것이다.

hexo clean && hexo deploy 는 public folder, database를 지우고 다시 deploy절차를 걸쳐 파일을 만드는 것이다.
포스트 할 때 마다 hexo clean && hexo deploy를 해줘야 한다.

  1. hexo new post "Second post"를 입력하고 Created에 있는 경로로 가서 이미지 수정이 가능하다.

관련 강의 영상: https://youtu.be/FwRKkZXSdY8

3. Branch

3-1. Branch란?

독립적으로 코드를 변경할 수 있도록 도와주는 모델이다.

공통된 작업을 할 때 독립적으로 내가 맡아야 할 부분을 branch로 작업을 하여 작업이 완료된 후에 main에 병합하는 방식이다.

★ 실무에서는 branch를 만들 때 어떤 역할을 하는지 명시적으로 알 수 있게 해줘야 하므로 이름을 잘 선택해서 만들어야 한다.

3-2. Branch의 명령어

★ 앞으로 나올 name은 자기가 사용하고 싶은 이름을 작성을 하면 된다.

  • git branch : 존재하는 branch 목록을 확인 할 수 있다. 처음 생성 시 branch는 main 혹은 master로 되어있다.
    아스테리크(*)가 붙어있는 branch가 현재 branch의 위치이다.
  • git branch name : 해당 이름의 branch를 생성한다.
  • git switch name or git restore name : 해당 이름의 branch로 이동한다.
  • git branch -D name : 해당 이름의 branch를 제거한다.
  • git merge name : 해당 이름의 branch와 병합한다.

3-3. Branch를 활용한 git 이용 예시

3-3-1. github에서 새로운 repository를 만들어 README.md를 추가하고 git clone을 해보자.
이후 git clone을 한 위치에서 git branch로 현재 branch를 확인한다.
이후 README.md에 내용을 작성해본다.

3-3-2.git branch name : name이라는 branch를 추가한다.
이후 git brach를 사용하여 name이라는 branch가 추가 됐는지 확인해 보자.

3-3-3.
git switch name 또는 git restore name 로 name branch로 이동이 가능하므로 이동을 한 뒤 README.md 파일을 수정해준다.
그 다음 git add, git commit, git push를 해준다.
이때, git push -u origin name으로 해주자.
이후 github에 가서 확인을 해보면 main에는 변경된 내용이 없지만 name branch에서 작업이 일어난 것을 확인 할 수 있다.

3-3-4.
이후 git switch main으로 main branch로 이동해 준다. 그 다음 name branch의 내용과 병합하기 위해 git merge name을 해준다.
이때 내용이 달라 충돌이 일어나고 CONFLICT와 함께 충돌이 되는 파일과 해당 내용이 나타난다.
vim으로 해당 파일로 들어가 보면 충돌 되는 내용이 있으므로 해당 부분을 수정해주면 된다.

3-3-5. 수정 이후 git status를 입력하면 Unmerged paths, both modified 문구가 나오게 되며 확인이 끝나면 git add ,git commit을 이용하여 취합하면 된다.

이때 git commit -m을 사용하면 안된다. 왜냐하면 vi로 봤을 때 원래 제목을 가진 commit이 사라지기 때문이다.
git commit을 입력하여 vim으로 직접 메세지를 작성하는걸 권장한다.

4. ★git flow : master, develop, freature

  • develop branch : feature branch에서 생성된 결과물의 집합소, 작업한 내용을 담는다.
  • feature branch : 직접 개발되는 branch이다.
  • git flow의 작업 흐름 : feature -> develop -> release -> master
    혹은 hotfix -> master

4-1. git flow 예시

1. git clone으로 연습할 github의 repository를 가져온다.

2. git flow init를 입력하면 여러 설정들이 나오고 전부 enter를 쳐서 넘어가면 develop branch가 생성된다.

3. feature -> develop

3-1. develop branch에서 git flow feature start name 를 입력하여 name branch를 생성한다.

3-2. md, html 등의 파일을 하나 추가하고 vim을 이용하여 내용을 편집한 이후 git add, git commit을 차례로 해준다.

3-3. 작업이 끝났으면 git flow feature finish name를 입력하면 된다. 작업 내용은 summar of actioins에서 확인할 수 있다.
이 때 git branch를 쳐보면 feature branch가 사라진 것을 확인할 수 있다.

4. develop -> release

4-1. git flow release start v0.0.1 을 입력한다. (version은 자기 마음대로 입력해도 무관하다. 연습이니까..)
추가적으로 version은 v 바로뒤에 1이 붙으면 정식버전을 의미, 0이면 정식버전이 아닌 것을 의미한다.

4-2. 사용자에게 배포 준비 또는 많은 테스트가 일어나는 단계이며
이후 3개의 입력 단계가 나온다. 가끔 2단계만 나올 수 있다.

  • 1단계 : main branch에 관한 Merge branch...
  • 2단계 : version tag
  • 3단계 : develop으로 가는 tag

4-3. 이제 main ,develop등 남은 branch에서 모두 git push 해줘야 한다.
develop branch에서 git push -u origin deploy 를 이용하여 push해주면 된다. (처음 만드는 local branch이므로)
이후 git switch main을 입력하고 git push origin main을 해준다.

5. git tag

git tag로 태그를 조회할 수 있다.
git push --tags을 압력하면 main에 4-2에서 입력한 version tag가 달리게 된다.

4-2. git flow 사이트

https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html

profile
잘 할 수 있는 개발자가 되기 위하여

0개의 댓글