ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git Flow
    codeStates front-end/Git(project) 2023. 4. 12. 18:51
    반응형

     

     

    목차

       

       

       

       

       

       

      📌  Git Flow

       

       

       

       

      📍Git branch

       

      브랜칭이란, 기존 개발중인 메인 개발 코드를 그대로 복사하여 새로운 기능 개발을 메인 개발 코드를 건드리지 않고

      할 수 있는 버전 관리 기법이다.

      기존 main 브랜치를 건드리는 것이 아닌 새로운 브렌치를 생성하여 자유롭게 코드를 추가 및 삭제한다.

       

       

      🔗 브랜치 생성하기 / 변경하기 (git switch)

       

      # feature라는 브랜치를 새로 생성하는 경우, -c를 붙입니다.
      git switch -c feature
      # checkout이라는 명령어도 사용할 수 있습니다.
      git checkout -b feature
      
      # 기존에 있던 main 브랜치로 HEAD를 변경하려면, -c를 붙이지 않습니다.
      git switch main
      git checkout main

          

       

      🔗 브랜치 합치기 (git merge)

       

      # 기능 개발이 진행되었습니다.
      git commit -m "기능1의 세부 기능1"
      git commit -m "기능1의 세부 기능2"
      git commit -m "기능1 개발 완료"
      # 머지를 위해 main 브랜치로 전환
      git switch main
      # main 브랜치로 feat/todo 브랜치를 병함
      git merge feat/todo

       

       

      🔗 Pull Request

       

      # 기능 개발이 진행되었습니다.
      git commit -m "기능1의 세부 기능1"
      git commit -m "기능1의 세부 기능2"
      git commit -m "기능1 개발 완료"
      # GitHub 리포지토리로 푸시합니다.
      git push origin feat/todo
      # GitHub에서 Pull Request를 합니다.

       

       

       

       

      🔗 브랜치 삭제하기 (git branch -d)

       

      // 로컬 리포지토리에서 브렌치 삭제
      git branch -d feat/todo
      // 브렌치가 합쳐지지 않아 삭제가 안되는 경우 -D 옵션으로 삭제 가능
      git branch -D feat/todo

       

       

      🔗  Git 설정

       

      # 버전 히스토리를 식별할 때 사용할 이름을 설정합니다.
      $ git config --global user.name "[firstname lastname]"
      # 각 기록과 연결할 이메일 주소를 설정합니다.
      $ git config --global user.email “[valid-email]”

       

      🔗  도움말 보기

       

      # Git에서 제공하는 모든 명령어를 볼 수 있습니다.
      $ git help -all
      # 특정 command에서 사용할 수 있는 모든 옵션을 볼 수 있습니다.
      $ git [command] -help

       

      🔗  세팅 및 초기화

       

      # 현재 디렉토리를 기준으로 Git 저장소가 생성됩니다.
      $ git init
      # URL을 통해 리모트 리포지토리를 로컬 리포지토리에 복제합니다.
      $ git clone [url]

       

      🔗  Stage & Commit

       

      # 다음 커밋을 위해 현재 디렉토리에서 수정된 파일을 확인할 수 있습니다.
      $ git status
      # 다음 커밋을 위해 파일을 추가(스테이지)합니다. (stage)
      $ git add [file]
      # 추가한 파일을 언스테이징합니다. 변경 사항은 유지됩니다.
      $ git reset [file]
      # 스테이지되지 않은 변경 사항을 보여줍니다.
      $ git diff
      # 스테이지했지만 커밋하지 않은 변경 사항을 보여줍니다.
      $ git diff --staged
      # 스테이지된 콘텐츠를 메시지와 함께 커밋합니다. (스냅샷 생성)
      $ git commit -m “[descriptive message]”

       

       

      🔗  Brach & Merge

       

      # 브랜치 목록을 보여줍니다. * 표시로 현재 작업중인 브랜치를 확인할 수 있습니다.
      $ git branch
      # 현재 커밋에서 새로운 브랜치를 생성합니다.
      $ git branch [branch-name]
      # 다른 브랜치로 전환합니다.
      $ git switch [branch-name]
      $ git checkout [branch-name]
      
      # 새로은 브랜치를 생성하고 해당 브랜치로 전환합니다.
      $ git switch -c [branch-name]
      $ git checkout -b [branch-name]
      # 현재 브랜치에 특정 브랜치의 히스토리를 병합합니다.
      $ git merge [branch-name]
      # 현재 브랜치의 모든 커밋 히스토리를 보여줍니다.
      $ git log

       

       

      🔗  비교 및 검사

       

      # 브랜치B에 없는 브랜치A의 모든 커밋 히스토리를 보여줍니다.
      $ git log branchB..branchA
      # 해당 파일의 변경 사항이 담긴 모든 커밋을 표시합니다. (파일 이름 변경도 표시)
      $ git log --follow [file]
      # 브랜치A에 있지만 브랜치B에 없는 것의 변경 내용(diff)을 표시합니다. (branch간 상태 비교)
      $ git diff branchB...branchA

       

       

      🔗  공유 및 업데이트

       

      # url을 통해 특정 리모트 리포지토리를 별칭으로 추가합니다.
      $ git remote add [alias] [url]
      # 별칭으로 추가한 리모트 리포지토리에 있는 모든 브랜치 및 데이터를 로컬로 가져옵니다.
      $ git fetch [alias]
      # 리모트 브랜치를 현재 작업중인 브랜치와 병합하여 최신 상태로 만들 수 있습니다.
      $ git merge [alias]/[branch]
      # 로컬 브랜치의 커밋을 리모트 브랜치로 전송합니다.
      $ git push [alias] [branch]
      # 리모트 리포지토리의 정보를 가져와 자동으로 로컬 브랜치에 병합합니다.
      $ git pull

       

       

      🔗  히스토리 수정

       

      # 특정 브랜치의 분기 이후 커밋을 현재 작업중인 브랜치에 반영합니다.
      $ git rebase [branch]
      # 득정 커밋 전으로 돌아가며 스테이지된 변경 사항을 모두 지웁니다.
      $ git reset --hard [commitish]

       

       

      🔗  임시 저장

       

      # 수정하거나 스테이지된 변경사항을 스택에 임시 저장하고 현재 작업 내역에서 지웁니다.
      $ git stash
      # 스택에 임시 저장된 변경사항의 목록을 보여줍니다.
      $ git stash list
      # 스택에 임시 저장된 변경사항을 다시 현재 작업 내역에 적용합니다.
      $ git stash apply
      # 스택에 임시 저장된 변경사항을 다시 현재 작업 내역에 적용하고 스택에서 삭제합니다.
      $ git stash pop
      # 스택에 임시 저장된 변경사항을 삭제합니다.
      $ git stash drop
      반응형

      댓글

    Designed by Tistory.