[Git][GitHub 사용하기] 원격 브랜치 생성 및 다루기

mutexlocking·2022년 7월 10일
0

<1. 로컬에서 새로운 브랜치를 만들어, 원격 저장소에 push>

  • 이때 원격에도 동일 이름으로 새로운 브랜치가 생기도록

[먼저 로컬에 from-local 이란 이름의 브랜치 생성]

  • git branch from-local
  • git switch from-local
    -> 현재 작업중인 브랜치를 main에서 from-local 브랜치로 변경

[로컬의 from-local 브랜치의 내역을, 원격 origin의 from-local 브랜치에 push]

  • 이때 현재 작업중인 from-local 브랜치 상에서, 그냥 git push 하면
    -> push가 제대로 안됨.
    -> 왜냐하면 "원격 어느 저장소의 , 어느 브랜치에 push할지" 연결 정보를 setting하지 않았기 때문
  • 따라서 git push -u origin from-local 명령어 사용
    -> -u 옵션을 통해 로컬의 from-local 브랜치와 연결될 연결정보를 setting
    -> 이때 대상은 origin 저장소의 from-local 브랜치가 된다.
    -> 그런데 origin 저장소에 현재 from-local 브랜치가 없다면
    -> from-local브랜치가 생성이 되면서 , 연결정보가 맺어지고, push가 된다
    -> 이후에는 로컬의 from-local 브랜치에서, 그냥 git push만 해도
    origin의 from-local 브랜치로 push가 된다. (pull 도 마찬가지)
  • 결론은 처음 push 때는 -u 옵션을 써서 어느 저장소의 어느 브랜치에 연결을 맺을지 setting 해줘야 하고
  • 이때 원격에 없는 브랜치 이름을 쓰면, 그 이름의 브랜치가 생성되면서 push가 된다

<2. 반대로 원격에 있는 브랜치를 받아오기>

  • 현재 같은 팀원이 새로 원격에 브랜치를 만든상황
  • 나는 그 새로운 브랜치와 연결을 맺고
  • 그 새로운 브랜치의 내용을 내 로컬로 받아와 보자

[일단 원격에 새로운 브랜치 생성]

  • 협업하는 팀원이 생성하는 상황이라고 가정하고
  • 실제로는 GitHub 사이트에서, main으로 부터 파생된 from-remote 브랜치 생성

[이후 로컬에서 전체 브랜치 확인]

  • git branch -a
    -> 로 로컬과 연결된 origin의 전체 브랜치를 확인해도
    -> 로컬은 정보를 받지 않았으니, from-remote 브랜치가 뜨지 않음

[원격의 브랜치 변경 사항을 로컬에서 확인할 수 있도록]

  • git fetch
    -> 를 쓰면 이제 연결된 원격 origin의 브랜치 변경 사항을 로컬이 알게됨
  • git branch -a
    -> 실제로 이렇게 다시 모든 브랜치를 조회해 보면, from-remote가 뜨는걸 알 수 있음

[이후 원격 origin의 새로운 브랜치를 로컬로 받기]

  • git switch -t origin/from-remote
    • origin 저장소에 있는 from-remote 브랜치 정보를 로컬로 받아오되
    • 받는 로컬의 브랜치도, from-remote라는 이름의 브랜치를 생성하여 , 여기로 받도록
    • 그리고 로컬의 현재 작업중인 브랜치를 이 from-remote로 변경
    • 또한 로컬의 from-remote하고 origin의 from-remote하고 연결이맺어짐
    • 따라서 로컬의 from-remote에서 바로 git push만 해도
      origin의 from-remote로 push가 됨.

[다시 모든 브랜치 조회]

  • git branch -a
    : from-local 브랜치가 로컬에도 생성되어 있는것을 확인 가능


<3. 브랜치 삭제>

[로컬 브랜치 삭제]

  • git branch -d (브랜치 이름)

[원격 저장소의 브랜치 삭제]

  • git push (원격 저장소 이름) --delete (원격 브랜치 명)
  • 즉, git push origin --delete from-local
  • 즉, git push origin --delete from-remote
profile
개발자가 되고자 try 하는중

0개의 댓글