본문 바로가기

Java

이클립스 Git Branch 생성, 삭제 및 Stash 사용법

1.이클립스에 프로젝트가 하나 있다고 가정합니다.

  • 이름은 [MSProject]
  • 현재 Branch 는 master branch 만 존재한다.
  • MSProject 프로젝트에 새로운 Branch를 생성해보자.

Git Repositories에 master 브랜치만 존재하는것을 확인.

 

2.이클립스 좌측에서 MsProject 에서 마우스 우클릭 > Team > Switch To >  New Branch 선택한다.

 

3.새로 생성할 Branch 명을 입력후 [Finish] 버튼을 클릭한다.

  • 필자는 workingBranch 라는 Branch 명을 입력하여 생성하였다.

새로운 Branch 명을 적는다. workingBranch 라고 작성하겠다.

 

4.아래 그림(오른쪽 참고) master Branch 하위에 workingBranch 가 새로 생성 되었다.

5.아래 그림과 같이 Git Repositories 에서 workingBranch 을 클릭 후 마우스를 우클릭하여 Remote에 Push한다.

  • Push Branch... 클릭

 

6.Next 버튼 클릭.

 

7.Finish 버튼 클릭

 

8.아래와 같이 새로운 workingBranch가 생성되었다.(하위 그림)

  • Local 하위의 branch 들은 말 그대로 나의 로컬 영역의 브랜치이다.
  • Remote Tracking 하위의 branch는 원격 브랜치인데 origin/workingBranch 라는 부분이 바로 실제 Git 공동 사용자들과  작업할 Remote 영역에 branch가 생성된 것이다.
  • 이제 다른 사용자들도 Git을 통해 workingBranch에 checkout 하여 소스를 내려 받거나 커밋 & 푸쉬 할 수 있다.

 

9.필자는 GibHub를 사용하였으므로, GibHub에 실제로 Branch가 생성되었는지 확인해보자.

GitHub에서도 workingBranch가 생긴것을 확인.

 

10.브랜치생성 완료.

  • 이제 master, workingBranch 브랜치 별로 commit or commit and push 를 하며 사용이 가능하다. 
  • workingBranch에서 작업이 끝나면 comm and push 이후 master Branch로 checkout 하여 merge를 하면 된다.
  • checkout 과 merge 병합에 대해서는 언급하지 않겠다.

 


Remote 브랜치 삭제. 

생성된 workingBranch를 삭제해보자.  
Git Repositories 의 Local > Remote Tracking에서 workingBranch를 아무리 삭제하고 push를 하여도  
Git Hub 에서는 지워지지 않았다.  
Git Repositories 의 Local 및 Remote Tracking에서의 삭제와 실제 remote 에서 삭제되는것은 별개다.

 

1.Remote에서 브랜치 삭제. 

Git Hub 에서까지 완전히 삭제하려면 우선 삭제할 branch 외의 branch로 checkout을 한다. 
이후 프로젝트를 우클릭하여 team > remote > push 클릭 

 

Next 클릭.

 

Remote ref to delete 콤보로 삭제할 브랜치 선택 후 Add Spec 클릭 후 Finish 

 

GitHub에서 삭제되었는지 확인.

2.이클립스의 Git Repositories 에서 Local 및 Remote Tracking 에서 마우스 우클릭 하여 Branch를 삭제한다.

 


이클립스 Git Stash 사용 

만약 workingBranch에서 작업중에 급하게 master 브랜치로 가서 오류를 수정해야하는 상황이 있다고 가정하자. 
혹은 현재 작업중인 내역을 잠시 백업해두고 remote 소스와 동기화를 시켜 작업이 필요하다고 가정한다. 
하지만 작업중인 소스가 아직 완성본이 아니어서 commit 하기는 좀 곤란한 경우 stash 를 사용할 수 있다. 
테스트를 위해 원본파일 1개를 수정, 신규파일 1개를 아래와 같이 생성하였다. 
 - 기존파일인 TestA.java 파일수정. 
 - 기존에없던 TestB.java 파일생성. 

이후 프로젝트 우클릭 Team > Stashes > Stash Changes.. 클릭 

 

이름은 작업에 의미있게 입력하면된다. 여기서는 tempStash 이라고 입력하고 커밋.

Git Repositories에 Stashed Commits 가 생겼다.  
Package Explorer를 주목해서보면 기존에 있던 TestA.java 파일은 수정된 내역 표시 [ > ]가 사라진데 반해  
새로 생성되어 아직 아무런 브런치에도 commit되지 않은 TestB.java 파일은 여전히 ? 인것을 볼수있다.  
이는 아무런 branch에도 히스토리가 올라가지 않은 아직 git에 관리되지 않은 소스여서 그렇다. 

 

 

이제 Stash에 임시저장 후 master 브랜치에서 작업을 모두 끝났다고 가정하에 다시 Stash에 저장해둔 소스를  
불러와보자.  
Git Repositories에 의 Stashed Commits 하위의 stash@ 부분에 우클릭하여 Apply 하면 끝이다.

 

 

Package Explorer를 보면 다시 TestA.java 파일이 작업하던 중으로 돌아와있는것을 확인가능하다. [ > ]