git - 프로젝트 관리시작, commit, push, 프로젝트 원격지로 올리는 법, 원격지 연결 해제 방법은 아래 포스팅을 참고하세요

👉https://gosasac.tistory.com/71

 

git - 프로젝트 관리시작, 브랜치명 변경, 커밋, 푸쉬, 원격저장소 올리는법

git - 설치 방법은 아래 링크 참고 👉https://gosasac.tistory.com/69 git - 설치(CLI와 GUI[sourcetree])와 최초 설정 방법 🟥 윈도우 Git 설치 https://git-scm.com/ 에서 Git을 다운로드 합니다. ⭐설치과정에서 Git Bash

gosasac.tistory.com

 

 

 

🟥 GItHub에서 프로젝트 다운받기

 github 페이지에서 checkout 받고자하는 프로젝트의 [< > Code ] 탭과 [< > Code ]  버튼을 찾아가면, 

아래와 같은 HTTPS URL확인이 가능합니다. 

우측의 버튼을 눌러 복사합니다. 

 

 

이제 로컬에서 터미널이나 Git Bash에서 체크아웃 받고자 하는 대상 폴더로 이동한 후에 아래 명령을 실행합니다. 

git clone 원격지주소

이후 아래 fetch 와 pull 명령어를 통해 소스를 가져옵니다. 

 

❗ checkout 명령어가 Git 2.23 버전부터 switch, restore로 분리되었습니다. 

git switch 브랜치명

 

 

 

 

🟥 fetch vs. pull

fetch : 원격 저장소의 최신 커밋을 로컬로 가져오기만 합니다.

pull : 원격 조장소의 최신 커밋을 로컬로 가져와 merge 또는 rebase를 진행합니다.

 

즉, pull에는 기본적으로 fetch가 포함되어 있습니다.

 

fetch를 이용하면 원격지의 새 branch(ex. new-branch) 내용을 바로 내 작업본에 pull하지 않고, 소스를 확인만 하는 것이 가능합니다.

 

git fetch
git pull

 

🔸 pull할 것이 있을 때 push를 하게 되면 ?

원격 저장소에 먼저 적용된 새 버전이 있는 경우에는 push가 불가능합니다. 

pull을 이용해 원격의 버전을 받아온 이후에 비로소 push를 할 수 있습니다. 

 

 

 

🟥 브랜치를 합치는 두 가지 방법. [merge 와 rebase]

 

* merge 방식

두 개의 가지를 이어 붙이는 작업으로 대상 브랜치에 적용시, 커밋이 한 번 더 생기게됩니다. 

-merge 방식으로 pull하는 명령어

git pull --no-rebase

 

* rebase 방식

브랜치의 마디 커밋들을 대상 브랜치로 모두 옮겨붙이는 것입니다. 

- rebase 방식으로 pull하는 명령어

git pull --rebase

 

merge방식과 rebase 방식의 결과물은 동일하지만, 브랜치의 사용 내역을 남길 필요가 있다면 merge.

브랜치 사용내역이 별로 중요하지 않고, 히스토리를 깔끔하게 유지하고 싶다면 rebase를 진행하면 됩니다.

 

 

 

* merge로 합치기 

main브랜치에 sub 브랜치를 merge 하기.

git switch main
git merge sub
git branch -d sub  // sub 브랜치 삭제

 

 

* rebase로 합치기

sub 브랜치를 main 브랜치로 rebase 하기.

git swtich sub    // ⭐ merge 때와는 달리 rebase시킬 브랜치로 이동합니다.
git rebase main

여기까지 진행 후, 소스트리와 같은 GUI툴로 상태를 확인해 보면, main 브랜치는 뒤쳐져 있는 상황이 됩니다. 

따라서 main 브랜치로 다시 이동해서, sub의 시점으로 fast-forward 작업이 필요하죠.

merge할 때와 동일한 방식으로 진행하면 됩니다. 

git switch main
git megre sub
git branch -d sub

 

 

 

🟥 브랜치 다루기

브랜치는 프로젝트를 하나 이상의 모습으로 관리할 때 와 

여러 작업들을 각각 독립적으로 진행할 때 사용합니다.

 

- new-branch 라는 브랜치 생성

git branch new-branch

 

- 생성된 브랜치 확인

git branch

 

- 모든 브랜치 확인(원격지에 있는 브랜치까지) [-a]

git branch --all
git branch -a

 

- old-branch 라는 브랜치로 이동

git switch old-branch

*checkout 명령어가 Git 2.23버전부터 switch, restore로 분리되었습니다. 

 

 

- 브랜치(baby-branch) 생성과 동시에 이동하기 [-c]

git switch -c baby-branch

 

 

- 브랜치 삭제하기 [-d]

git branch -d 브랜치명

지울 브랜치에 다른 브랜치로 적용되지 않은 내용의 커밋이 남아있을 시에는 -D(대문자) 옵션을 이용해 강제 삭제합니다. 

 

 

- 브랜치명 변경하기 [-m]

new-branch라는 브랜치 생성 후 baby-branch로 변경 

git branch new-branch
git branch -m new-branch baby-branch

 

 

 

🟥 원격 브랜치 다루기

원격지의 새 브랜치 받아오기

git fetch
git switch -t origin/new-branch

로컬에 원격지의 'new-branch' 브랜치를 생성하여, 연결하고 switch 합니다. 

 

 

원격지 브랜치 연결해제

원격지 origin에 로컬 main을 다시 push하는 방법입니다. 

git remote remove origin
git push -u -f origin main

 

 

원격지 브랜치 소스 올리기

로컬과 원격지가 동일 브랜치명으로 연결되어야 push가 가능합니다.

git branch new-branch  // new-branch 라는 브랜치 생성
git switch new-branch  
git push -u origin new-branch

 

원격지 브랜치 삭제

git push origin --delete 원격지브렌치명

* origin은 원격지의 이름입니다. 

+ Recent posts