힘내 이야기
7616 단어 git
워크플로 이야기
옛날 옛적에 Krevorook이라는 드워프가 트리 엘프의 의뢰를 받아 정적 웹사이트를 구축하고 Netlify와 같은 CDN에서 호스팅했습니다. 그의 여정은 새로운 발견으로 가득 차 있었습니다... 그리고 GIT라는 사나운 짐승과 친구가 되는 것도 그 중 하나였습니다. 다음은 그들이 함께 보낸 시간에 대한 작은 설명입니다.
프로젝트를 설정한 후 Krevorook은 새 git repo를 만들었습니다.
그래서 그는 배포 가능한(프로덕션) 코드가 있는 MAIN 브랜치를 가지고 있었습니다.
git init
git add .
git commit -m 'init'
새로운 Github 리포지토리를 생성한 후 리모컨을 추가했습니다.
git remote add origin https://github.com/user/repo.git
git push -u origin main
그리고
git push
그를 위해 잘 일했습니다. 홈페이지를 만들어 배포했습니다.때때로 그는 새 파일을 가져왔습니다.
git add .
git commit -m 'added: .gitignore'
git push
때때로 그는 기존 것을 연마했습니다.
git commit -am 'my message'
Krevorook이 일부 파일을 추가하는 것을 잊었거나 부정확한 메시지를 작성했을 때 그는 스스로 수정했습니다.
git add .
git commit --amend -m 'new message'
그러나 더 자주 그는 사소한 수정을 했습니다.
git commit -a --amend --no-edit
그는 또한 분명히 아직 생산 준비가 되지 않은 페이지에 대해 연락을 취해야 합니다.
그래서 그는 "적극적으로 개발된"코드가 있는 새로운 브랜치 DEV를 만들었습니다.
git checkout -b dev
git push -u origin dev
그는 뽀모도로 기법을 사용한 세션, 30분 작업/3분 휴식을 사용하여 작업했습니다. 한 세션은 일반적으로 2-3시간이 소요된 후 최소 1시간의 휴식 또는 변경 활동(코딩이나 앉아 있는 것과는 관련이 없음)이 뒤따릅니다.
각 세션이 끝날 때 Krevorook은 의미 있는 메시지가 없더라도 커밋하려는 충동을 느꼈습니다.
git commit -am 'up'
그는 항상 기록을 정리할 수 있기 때문에 더미 커밋을 사용하는 것이 좋습니다.
git rebase -i HEAD~3
종종 그는 현재 상태를 확인했습니다.
git status
git log --graph --decorate --pretty=oneline --abbrev-commit
매우 반복적이었습니다. 그래서 Krevorook은 그의 소중한 애완동물인 Bash에게 도움을 청했습니다.
# ~/.bash_aliases
alias gs='git status'
alias gl='git log --graph --decorate --pretty=oneline --abbrev-commit'
alias gc='git commit -m'
alias gca='git commit -am'
마침내 페이지는 제작 준비가 되었고 WWW에 소개되기를 갈망했습니다.
그리고 Krevorook은 MAIN과 함께 DEV에 합류했습니다.
git checkout main
git merge dev
git push
그는 집, 연락처 및 정보의 3페이지로 웹사이트를 운영하고 있습니다.
그러나 연락과 페이지에 대한 정보는 빠르게 이루어졌으며 아마도 그는 더 나은 페이지를 만들기 위해 노력해야 할 것입니다.
그래서 그는 DEV를 기반으로 NEW-ABOUT-PAGE와 NEW-CONTACT-PAGE라는 두 개의 새로운 브랜치를 만들고 거기에 엄청난 노력을 기울였습니다.
git branch new-about-page dev
git branch new-contact-page dev
어느 시점에서 새 연락처 페이지가 좋아 보였고 개선할 점이 없었습니다. 그래서 그는 DEV와 함께 NEW-CONTACT-PAGE 브랜치에 단일 커밋으로 합류했습니다. 그런 다음 그는 모든 것을 프로덕션으로 푸시하고 리포지토리를 정리하여 NEW-CONTACT-PAGE 분기를 삭제했습니다.
# make sure everything is good, some adjustment is needed?
git checkout dev
git merge --squash new-contact-page
git commit -m "merge new-contact-page"
# deploy
git checkout main
git merge dev
git push
# delete
git branch -d new-contact-page
git push origin --delete new-contact-page
그리고 페이지는 어떻습니까?
연락처 페이지와 달리 새로운 정보 페이지는 그다지 좋지 않아 보였습니다. 그래서 그는 현재의 것을 고수하기로 결정하고 계속 진행했습니다.
git branch -D new-about-page
git push origin --delete new-about-page
끝.
사용된 명령
새 로컬 저장소 만들기
git init
작업 디렉토리의 상태를 표시합니다(수정된 파일 표시).
git status
현재 분기의 기록에 있는 모든 커밋을 표시합니다.
git log
git log --graph --decorate --pretty=oneline --abbrev-commit
다음 커밋(단계)에 파일 추가
git add [file]
다음 커밋에 모든 파일 추가
git add .
마지막 커밋을 새롭고 향상된 커밋으로 바꿉니다.
git add .
git commit --amend -m 'new message'
사소한 수정
git commit -a --amend --no-edit
Git 커밋 추가, 제거 또는 결합
git rebase -i HEAD~[num of commits]
새 분기(dev)를 만들고 전환하십시오.
git checkout -b dev
다른 브랜치(메인)로 전환하고 작업 디렉토리로 체크아웃하십시오.
git checkout main
원격 저장소에 새 분기(dev) 만들기
git push -u origin dev
기존 분기(dev)를 기반으로 새 분기(기능) 만들기
git branch feature dev
지정된 분기(기능)를 현재 분기(dev)에 병합(결합)
git checkout dev
git merge feature
지정된 분기(기능)를 현재 분기(dev)에 병합
단일 커밋으로
git checkout dev
git merge --squash feature
git commit -m "merge feature"
로컬 브랜치(기능) 삭제
# safe delete
git branch -d feature
# delete without questions
git branch -D [failed-feature-branch]
원격 분기 삭제(기능)
git push origin --delete feature
Reference
이 문제에 관하여(힘내 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/diogenesofweb/git-tale-5h3d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)