[먼저 로컬에 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가 된다
[일단 원격에 새로운 브랜치 생성]
- 협업하는 팀원이 생성하는 상황이라고 가정하고
- 실제로는 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 브랜치가 로컬에도 생성되어 있는것을 확인 가능
[로컬 브랜치 삭제]
- git branch -d (브랜치 이름)
[원격 저장소의 브랜치 삭제]
- git push (원격 저장소 이름) --delete (원격 브랜치 명)
- 즉, git push origin --delete from-local
- 즉, git push origin --delete from-remote