Git 나뭇가지 혹은 Branch 🍃🌳

branch가 있었을 때 폴더도 아니면서 왜 있는지 궁금했다.
branch를 이용하면 개발에 참여할 때 독립적으로 개발을 할 수 있다 !

만약 A라는 브랜치가 있다.

  • B브랜치가 새로운 파일을 독자적으로 생성하는 경우
  • B브랜치가 A브랜치의 파일을 수정하는 경우
    → 실수해도 원본 A에 영향이 가지 않는다 !

1. Git branch 생성

git branch
→ 나의 git에 어떤 branch 가 있는지 확인하기

git branch 브랜치이름
→ 새로운 브랜치 생성

git checkout 브랜치이름 혹은 git switch 브랜치이름
checkout인지 switch 인지 git의 버전마다 다르다고 한다.

잘못만든 branch가 존재한다면?
git branch -D 브랜치이름
(삭제하면 복구할 방법이 없으니 신중하기 ! )


2. Git flow

git flow를 이용하면 여러 개발자와 프로젝트 개발 시 , 각자의 파트에 맡아서 개발을 할 수 있다. (branch 를 이용하기 때문에)


facebook-ios-sdk 를 확인해도 많은 버전을 확인할 수 있다. 이렇게 버전 관리를 해줄 수 있는 것이 브랜치를 이용한 flow라고 이해했다.

🖱️ Git flow 사용법

윈도우는 따로 해야할 것은 없지만. mac Os와 같은 경우
$ brew install git-flow-avh 명령어가 사전에 필요하다.

git flow init

나오는 문구들은 그냥 Enter 처리해준다. 파란글씨로 써져있던 (main) 이 (develop) 브랜치로 자동적으로 옮겨진 것을 확인할 수 있다.


가끔 ,, clone한 폴더로 이동안하고 그냥 git flow init 해주면 말도안되는 폴더에서 (develop)이 되버린 것을 확인 할 수 있다. 껐다 켜봐도 root 에서부터 develop 브랜치에 있다는 것을 확인할 수 있다.
그럴 때 ls-a 해서 .git 파일을 삭제해주면 main으로 다시 돌아올 수 있었다 😰 자신이 어디 위치인지 확인하기

develop 브랜치에서 hello.java 파일을 생성하는 경우

touch hello.java
vi hello.java

hello.java 파일

public class hello {
	
	public static void main(String[] args) {		
			System.out.println("hello world");
	}
}

javac hello.java
java hello

"hello world 가 잘나온 것을 확인했다."

* 실제 버전 관리

git flow release start v0.0.1
(v0.0.1은 예제 넘버다.)

세 개의 창 중에 두 번째 창인 (Write a message for tag)에서 뭐가 변했는지만 써주면 된다.

git push -u origin develop → 처음 push 할 경우 아니라면 -u 떼도 된다.
git push --tags


Reference |
git flow cheat sheet

좋은 웹페이지 즐겨찾기