programming/TIL

[지옥에서 온 Git]command_branch

mimyo_ 2020. 7. 29. 20:48

[2020.07.29 ~ 30]

branch작성의 목적
  - 현재 개발 중인 프로그램에서 특정 기능이 있는 버전 / 없는 버전이 필요할 때
  - 향후 삭제 예정인 코드가 포함될 때
  - 병행 개발을 위해?

1. 현재 branch 확인・다른 banch로 전환・branch간 비교

//현재 branch 확인
git branch


//다른 branch로 전환
git checkout 브랜치이름(전환하고자 하는)


//branch간 비교
git log 브랜치이름1..브랜치이름2
   //브랜치 이름 순서에 따라 다름. 전자가 reference가 되어 상대적 차이를 보여줌.
   //commit object이력의 차이를 나타내줌

//branch간 비교. 전체이력에서 각branch의 위치를 나타내줌.  
git log --branches --decorate --graph --oneline
  //--graph는 각 commit object간 이력을 선으로 연결하여 표현함을 의미.
  //--oneline은 branch 간 log차이를 축약하여 표현함을 의미

//branch간 비교. 소스코드의 변화를 나타내준다.
git log -p 브랜치이름1..브랜치이름2
  //전자가 reference가 되어 전자 대비 후자의 차이만 나타내줌

//branch간 비교. branch 간 소스코드의 차이를 전부 나타내줌.
git diff 브랜치이름1..브랜치이름2

  

 

2. branch 생성・삭제

//branch 생성
git branch 브랜치 이름
  //branch를 생성할 때 있었던 branch의 내용이 그대로 copy된다.
//branch를 생성하며 새로운 branch로 이동
git checkout -b "브랜치 이름"

//branch 삭제
git branch -d
  //현재 작업 디렉토리가 아닌 곳!
//병합하지 않은 branch강제 삭제(공부하기)
git branch -D

 

3. branch 병합

//branch 병합
//※A브랜치로 B브랜치를 병합(방향성이 중요!)
git checkout A브랜치
  //(현재 위치가 병합할 브랜치여야함)
git merge B
  //병합할 대상의 코드를 가져옴

 

4. git stash

  : 현재 작업중인 내용을 임시보관(commit을 하지 않고)하는 것. 다른 branch로 checkout하여 작업이 가능하게 되며, 임시보관한 작업 내용이 다른 branch에는 영향을 미치지 않게 된다.

//임시 저장한 작업 내용 확인하기
git stash list

//현재 작업 내용을 임시 저장하기
git stash (save)

//임시 저장한 작업 내용을 가져오기(최신)
git stash apply
  //이전 작업 내용을 가져오고 싶다면, 최신 작업내용을 삭제해야한다.(한번에 1개의 작업 만 조작 가능)

//임시 저장한 작업 목록 삭제하기(최신)
git stash drop

//임시 저장한 작업 내용을 가져오고, 해당 기록 삭제하기
git stash pop