LeeWang_31
이왕31
LeeWang_31
전체 방문자
오늘
어제
  • 분류 전체보기 (234)
    • 프로젝트 (2)
      • 사이드 프로젝트 (2)
      • Codestates_pre_project (0)
    • 프론트엔드 (169)
      • Html (19)
      • CSS (18)
      • JavaScript (29)
      • Codestates (76)
      • 코딩노트 (27)
    • 백엔드 (10)
      • node (10)
    • 구르는 돌 🌑 (16)
      • Codestates (11)
      • 생각 (4)
      • 공부 흔적 (1)
    • 정보 (18)
      • 오류노트 (2)
      • 인텔리제이 정보 (9)
      • 깃 정보 (3)
      • 기타 정보 (4)
      • 안드로이드스튜디오 정보 (0)
    • CS (7)
      • 이론공부 (7)
    • App (6)
      • Android (3)
      • Kotlin (3)
    • 컴퓨터 수학 (5)
      • 암호론 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 코드스테이츠
  • UI/UX
  • 사이드프로젝트
  • ubuntu
  • 번들링
  • DP
  • linux
  • React
  • 안드로이드스튜디오파이어베이스
  • 2609
  • JavaScript
  • linuix 코드스테이츠
  • 사용자친화웹
  • css
  • TODOlist
  • codestate
  • 백준
  • 사용자 친화 웹
  • 파이어베이스연동
  • 웹팩
  • 2693
  • 알고리즘
  • 자바스크립트
  • 생활코딩
  • 코플릿
  • 코딩애플
  • 1292
  • figjam
  • 안드로이드스튜디오범블비
  • html

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
LeeWang_31

이왕31

[Git Hub] Git branch1
정보/깃 정보

[Git Hub] Git branch1

2022. 12. 17. 02:04

Git branch

브랜칭은 기존 개발중인 메인 개발 코드를 그대로 복사하여 새로운 기능 개발을 메인 개발 코드를 건드리지 않고 할 수 있는 버전 관리 기법입니다. 처음에 Git 리포지토리를 생성하면 나오는 main 브랜치에서만 작업을 하다가 새로운 기능 개발을 위해 feature 브랜치를 새로 생성하는 경우, 기존 main 브랜치에서의 작업은 유지하고 새로운 feature 브랜치에서 자유롭게 코드를 추가 및 삭제할 수 있습니다.

 

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

생성

Git이 바라보는 곳, HEAD를 변경하는 작업을 switch라고 합니다

브랜치를 생성할때는 create의 의미로 -c를 붙여줘야합니다

switch 이전의 문법이었던 check로도 가능합니다

git switch -c dev
# checkout이라는 명령어도 사용할 수 있습니다.
git checkout -b todo

변경

이전에 생성과 동일 하지만 -c를 빼고 이동하는 branch의 이름을 작성합니다.

# 기존에 있던 main 브랜치로 HEAD를 변경하려면, -c를 붙이지 않습니다.
git switch dev
git checkout dev

브랜치 합치기 (git merge)

todo 브랜치에서 두개의 커밋을 보낸후 main으로 이동하여 병합을 할수 있습니다

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

하지만 다음 방식으로 진행하는 경우 변경내역을 충분히 확인 하기 힘들기 때문에 다른 방식으로 진행하려 합니다

# 기능 개발이 진행되었습니다.
git commit -m "fix1"
git commit -m "fix2"
# Github 리포지토리로 푸시합니다.
git push origin todo
# Github에서 Pull Request를 합니다.

git push <remote> <branch>

다음 형식으로 로컬에 저장되어 있는 todo라는 브랜치를 github(원격저장소)로 푸시할 수 있다.

 

gitbash에 master와 브랜치인 dev, todo를 생성했습니다.

hello하는 txt파일을 HEAD를 todo로 두고 commit을 진행하였습니다

이후 git push origin todo로 원격 저장소로 push를 보냈습니다.

push를 처음에 못찍어서 push를 한번더 했습니다

github으로 왔습니다

Pull request를 누르고 New pull request를 눌러줍니다

 

어디서 어디로 보내줄지를 정해야합니다.

저는 todo라는 브랜치에서 dev라는 브랜치로 보내고 싶기 때문에 다음과 같이 작성했습니다.

 

create pull request를 누릅니다

내용을 적당히 채워주고 create pull request를 눌러줍니다.

 

우측에서 label과 milestone등등을 정할수 있습니다

또한 다른 사용자 혹은 본인이 comment를 달고 싶은 경우 Write로 되어있는 부분에 작성을 할 수 있습니다.

코드를 리뷰하고 해당 코드가 dev에 들어가도 될것 같다 싶은 경우 Merge pull request - confirm merge를 눌러주면 됩니다.

 

이전에 사용했던 branch를 지울지 물어봅니다

지우길 원하는 경우 Delete branch를 눌러주면 됩니다.

브랜치 삭제하기

원격저장소에 todo라는 브랜치가 사라졌습니다. 우왕 ㅎㅎ

하지만 local환경에서는 여전히 todo 브랜치가 남아있습니다.

git branch -d todo
git branch -D todo

로컬 리포지토리에서 브랜치 삭제는 git branch -d <브랜치명> 으로 할 수 있습니다. Git은 원활한 버전 관리를 위해서, 브랜치가 합쳐지지 않으면 삭제하지 못하도록 설정이 되어있습니다. 하지만 종종 다 만들지 못한 기능의 기록을 삭제하고 싶을 수 있습니다. 이 때 -D 옵션을 쓰면 삭제할 수 있습니다. 삭제가 되어도 상관이 없는데 삭제가 안된다 싶으면 대문자D로 삭제하면 된다! 하지만 왜 오류가 생겼는지 확인하는게 좋을것 같다.

 

오류 코드는 캡쳐하지 못했지만 HEAD어쩌구 하는 오류가 발생했었는데 이는 원격저장소에서는 브랜치가 삭제 되지 않았는데 local에서 삭제했기 때문에 나타나는 오류가 있었다

 

merge한 브랜치는 삭제하는게 좋다

개발자로 일하시는 분의 말씀을 들어보니, 보통 하나의 역할이 끝난 브랜치는 지워 준다고 한다. 브랜치를 지우지 않고 6개, 8개 이런식으로 두지 않는다고 하셨다. 또한 기능이 정상적으로 끝나 merge된 브랜치가 나중에 다시 사용되면 이전의 log를 갖고 있는 상태로 활성화가 되기 때문에 문제가 생길수 있다 하셨다. (들은걸 제 식대로 정리해서 틀린 부분이 있을수 있습니다)

 

원격저장소에 있는 branch가 로컬에서는 보이지 않아요

원격저장소에 feat이라는 브랜치가 보인다.

하지만 로컬에서 branch를 검색하면 보이지가 않는다.

원격저장소에 feat브랜치가 만들어진 이후 clone했기 때문에 이상하다 생각이 들었다.

 

그냥 switch로 이동하니 이동이 되었다.

트래킹 브랜치가 찾아주는거라고 써있는것 같은데 정확한 이유는 모르겠다

저작자표시 (새창열림)

'정보 > 깃 정보' 카테고리의 다른 글

[Git Hub] Github 리포지토리  (2) 2022.12.16
[git] Fork와 Pull Request ( 스터디 준비 )  (0) 2022.10.21
    '정보/깃 정보' 카테고리의 다른 글
    • [Git Hub] Github 리포지토리
    • [git] Fork와 Pull Request ( 스터디 준비 )
    LeeWang_31
    LeeWang_31
    이왕 할 거면 기분 좋게

    티스토리툴바