SlideShare a Scribd company logo
Github 프리뷰
2016_09_06 한정
• 여러 사람이 동시에 하나의 코드를 수정
=> 다른 사람이 수정하는 부분을 신경 써야 한다.
큰 프로젝트를 하는 환경
• 버전 관리가 필요한 개발
=> 개발되는 새로운 버전의 코드를 어떻게 관리할지 고려해야 한다.
큰 프로젝트에서 Github을 쓰면!
 소스코드가 변경된 이력을 쉽게 확인가능
 특정시점으로 돌아갈 수 있음
 버전 관리 용이
Git의 큰 흐름
Work Tree(Working directory)
 실제로 작업을 하는 공간
Index(staging area)
 변동된 파일의 상태를 기록
 기록하고자 하는 것은 Index에 기록이 되어있어야 함.
 이 작업을 staging 이라 함
Repository
 커밋을 할 경우 저장소에 변동 사항을 저장
 이러한 저장사항들을 보며 변동사항을 알 수 있다.
Working directory
Staging area
Repository
Remote Repository
git add
git push
git commit
Remote Repository
 Push를 하게 되면 원격과 로컬상의 변경 이력이 동일하게 됨
 다른 사람들과 공유를 하게 되는 저장소이다.
저장소를 만들어 준다.
저장소를 복사한다.
원격 저장소를 복사한다.
변경사항을 index로 올려준다.
변경내용을 확정해준다.
변경내용을 발행해준다.
원격 저장소와 로컬 저장소를 맞춰서 갱신해준다.
1
2
3
4
5
6
7
branch를 만든다.
branch를 지운다.
원래 branch와 다른branch의 다른점을 보여준다.
Branch와 합병시켜준다.
8
9
1
0
1
1
간단한 Git 명령어
+cherry pick, rebase
Branch에서 작업을 할 때 특정 커밋을
가져오고 싶을 때가 있는데
그때 Cherry-pick을 사용한다.
(고른 커밋 하나에 대해서만 rebase)
Rebase를 하게 되면 다음과 같은
형태의 모습을 보인다.
이 과정을 거치고 merge를 하게 되면
좀 더 깔끔한 Log를 만들게 된다.
• Centralized Workflow
=> 하나의 마스터 브랜치를 이용하여 개발한다.
• Feature branch Workflow
=> Centralized에서 좀 더 나아가 기능별 브랜치를 만들어서 작업을 함
=> 격리된 작업 환경을 제공하여 마스터를 중심으로 안전하게 개발이 가능
• Gitflow Workflow
=> branch를 이력을 기록하는 branch, develop branch, release branch, hotfix branch 등 rule을 정해 관리한다.
• Forking Workflow
=> 모든 프로젝트 참여자가 개인적인 로컬 저장소와 원격저장소 두개를 갖는 방식이다.
=> 프로젝트 관리자만 다른 개발자들의 기여분을 공식 저장소에 저장할 수 있다.
=> 오픈소스에 적합하다.
여러가지 Git Workflow
1. 중앙 저장소 생성
1. Centralized Workflow
3. A코드 수정 후 반영2. 중앙 저장소 복제
왜 실패한 것일까?
A가 코드를 수정한 후 B는 최신 커밋
이력을 소유하지 않고 있기 때문에
4. B코드 수정 후 반영 실패
5. 최신 커밋 이력 반영충돌이 발생 했을경우!
서로 다른 코드를 수정했을 경우
문제가 발생하지 않겠지만,
같은 코드를 수정했을 경우 선택을
해야한다.
6.상태를 확인 해
문제가 발생한 곳을 찾아본다.
그리고 수정한다.
2. Feature Branch Workflow
1. branch생성 2. 작업을 함 3. 기능개발이 완료 될 경우
push를 하여 반영시킴
4. A는 B의 코드에 수정할
부분이 있다고 하고
B는 수정을 한다.
5. 수정을 한 후 병합시킨다.
3. Gitflow Workflow
1. 이력관리 2. 기능
3. 릴리즈 4. 유지보수
3. Gitflow Workflow
1. 이력관리 2. 기능
3. 릴리즈 4. 유지보수
master와 develop 브랜치를 따로 둬서
master에 release태그를 매기기 쉽게 함
develop 브랜치에서 나와 개발을 함, master와는
어떤 상호작용도 하지 않는다.
어느정도 develop이 완료 됬을 경우
develop 기준으로 릴리즈를 위한 브랜치를 따서
master에 병합한다.
긴급하게 오류수정이 있을 때 master에서
브랜치를 따 수정 후 develop과 master에 모두
반영시킨다.
3. Gitflow Workflow
1. 개발을 위해
develop branch를 만든다
2. develop branch에서 따서
개발을 시작한다.
3. Release를 하게 될 경우
Develop branch에서 release branch를 만든다.
4. Release를 해줄 때는 master, develop에
모두 push를 해준다.
* 버그가 있을 때
Master에서 branch를 따와 수정하고
Develop, master모두에 반영해준다.
4. Forking Workflow
1. 중앙 저장소 생성 2. 참여자들은 저장소를
복제하여 local에 만든다.
3. 참여자들은 다른
워크플로우 처럼 개발을 한 후
커밋, 푸시를 한다.
(이때 풀 리퀘스트를 하면
관리자에게 요청이 간다)
4. 관리자는 코드를
직접 받아보거나 풀 리퀘스트로
검토하여 병합한다.
origin origin upstream upstream
두 개의 stream
+smartgit(GUI)을 통한 간단한 예제
제 repository중 하나를 clone해 봤습니다.
프로젝트가 생긴 것을 볼 수 있습니다.
Log를 통해 커밋했던 기록을 그래프로 볼 수 있습니다.
+smartgit(GUI)을 통한 간단한 예제
여기에 add branch를 통해 test_getcha라는
새로운 branch를 만들었습니다.
새로운 branch가 만들어 진 것을 볼 수 있습니다.
간단한 코드 수정을 해보겠습니다.화면에 변동이 있는 파일과 상대경로가 나옵니다.
+smartgit(GUI)을 통한 간단한 예제
Commit 버튼을 누르면
수정된 파일을 커밋하게 됩니다.
여기서 commit을 하고 싶은 파일만
체크박스를 선택해 줄 수 있습니다.
현재 branch(test_getcha)에 push를
할지 matching 되는 모든 branch에
push할지 선택하여 push를 하게 됩니
다..
이 과정을 거치면 test_getcha branch에
수정사항이 올라가게 됩니다.

More Related Content

What's hot

Angular Library
Angular LibraryAngular Library
Angular Library
SangHun Lee
 
NationBildGuid
NationBildGuidNationBildGuid
NationBildGuidmerveiede
 
Git로 협업하기
Git로 협업하기Git로 협업하기
Git로 협업하기
Kim Byoungsu
 
Git flow
Git flowGit flow
Git flow
Wonjun Hwang
 
Travis ci ppt
Travis ci pptTravis ci ppt
Travis ci ppt
종현 김
 
githubaction
githubactiongithubaction
githubaction
Wonjun Hwang
 
Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)
승용 윤
 
Git flow
Git flowGit flow
Git flow
DaeMyung Kang
 
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습 [숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
Soongsil University
 
Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)
Hyunjun Roh
 
20130709 gradle
20130709 gradle20130709 gradle
20130709 gradleSukjin Yun
 
안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기
DongHwan Yu
 
Git basic
Git basicGit basic
Git basic
Jinhan Heo
 
Basic study 1회차
Basic study 1회차Basic study 1회차
Basic study 1회차
Seonmun Choi
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHub
Jongmin Park
 
디자이너를위한Git #1/2
디자이너를위한Git #1/2디자이너를위한Git #1/2
디자이너를위한Git #1/2
Choulhyouc Lee
 
Qt 5.10.0 개발환경 구축하기
Qt 5.10.0 개발환경 구축하기Qt 5.10.0 개발환경 구축하기
Qt 5.10.0 개발환경 구축하기
jdo
 
Angualr2에서 typescript 활용하기
Angualr2에서 typescript 활용하기Angualr2에서 typescript 활용하기
Angualr2에서 typescript 활용하기
현섭 최
 

What's hot (20)

Angular Library
Angular LibraryAngular Library
Angular Library
 
NationBildGuid
NationBildGuidNationBildGuid
NationBildGuid
 
Git로 협업하기
Git로 협업하기Git로 협업하기
Git로 협업하기
 
Git flow
Git flowGit flow
Git flow
 
Travis ci ppt
Travis ci pptTravis ci ppt
Travis ci ppt
 
githubaction
githubactiongithubaction
githubaction
 
Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)
 
Git flow
Git flowGit flow
Git flow
 
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습 [숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
 
Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)
 
20130709 gradle
20130709 gradle20130709 gradle
20130709 gradle
 
안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기
 
Subversion
SubversionSubversion
Subversion
 
Git basic
Git basicGit basic
Git basic
 
Basic study 1회차
Basic study 1회차Basic study 1회차
Basic study 1회차
 
Gradle guide
Gradle guideGradle guide
Gradle guide
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHub
 
디자이너를위한Git #1/2
디자이너를위한Git #1/2디자이너를위한Git #1/2
디자이너를위한Git #1/2
 
Qt 5.10.0 개발환경 구축하기
Qt 5.10.0 개발환경 구축하기Qt 5.10.0 개발환경 구축하기
Qt 5.10.0 개발환경 구축하기
 
Angualr2에서 typescript 활용하기
Angualr2에서 typescript 활용하기Angualr2에서 typescript 활용하기
Angualr2에서 typescript 활용하기
 

Similar to GIT_GETCHA_HANJUNG

[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
CONNECT FOUNDATION
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습
BJ Jang
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
BJ Jang
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)
Ildoo Kim
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
MDLicht
 
Configuration management best practices
Configuration management best practicesConfiguration management best practices
Configuration management best practicesHyunil Shin
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드
chandler0201
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
Chris Ohk
 
Git: A Motivating Introduction
Git: A Motivating IntroductionGit: A Motivating Introduction
Git: A Motivating Introduction
Jongwook Choi
 
소스트리(SourceTree)로 배우는 Git 사용법
소스트리(SourceTree)로 배우는 Git 사용법소스트리(SourceTree)로 배우는 Git 사용법
소스트리(SourceTree)로 배우는 Git 사용법
주형 고
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴
은아 정
 
Opensource java library deploy public repository
Opensource java library deploy public repositoryOpensource java library deploy public repository
Opensource java library deploy public repository
KyungHo Jung
 
Git from google techtalks by Randal
Git from google techtalks by RandalGit from google techtalks by Randal
Git from google techtalks by Randalyagurchoi
 
Git lecture1
Git lecture1Git lecture1
Git lecture1
ssuseraf62e91
 
Visual studio 사용 설명서(고급)
Visual studio 사용 설명서(고급)Visual studio 사용 설명서(고급)
Visual studio 사용 설명서(고급)
Lusain Kim
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
NAVER Engineering
 
[NEXT 프연 Week1] Git 시작하기
[NEXT 프연 Week1] Git 시작하기[NEXT 프연 Week1] Git 시작하기
[NEXT 프연 Week1] Git 시작하기
Young-Ho Cho
 
Advanced git
Advanced gitAdvanced git
Advanced git
chanwoo Jeong
 
GithubWithTerminal.pptx
GithubWithTerminal.pptxGithubWithTerminal.pptx
GithubWithTerminal.pptx
JUNSHIN8
 
[170403 2주차]C언어 A반
[170403 2주차]C언어 A반[170403 2주차]C언어 A반
[170403 2주차]C언어 A반
arundine
 

Similar to GIT_GETCHA_HANJUNG (20)

[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
 
Configuration management best practices
Configuration management best practicesConfiguration management best practices
Configuration management best practices
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
Git: A Motivating Introduction
Git: A Motivating IntroductionGit: A Motivating Introduction
Git: A Motivating Introduction
 
소스트리(SourceTree)로 배우는 Git 사용법
소스트리(SourceTree)로 배우는 Git 사용법소스트리(SourceTree)로 배우는 Git 사용법
소스트리(SourceTree)로 배우는 Git 사용법
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴
 
Opensource java library deploy public repository
Opensource java library deploy public repositoryOpensource java library deploy public repository
Opensource java library deploy public repository
 
Git from google techtalks by Randal
Git from google techtalks by RandalGit from google techtalks by Randal
Git from google techtalks by Randal
 
Git lecture1
Git lecture1Git lecture1
Git lecture1
 
Visual studio 사용 설명서(고급)
Visual studio 사용 설명서(고급)Visual studio 사용 설명서(고급)
Visual studio 사용 설명서(고급)
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
 
[NEXT 프연 Week1] Git 시작하기
[NEXT 프연 Week1] Git 시작하기[NEXT 프연 Week1] Git 시작하기
[NEXT 프연 Week1] Git 시작하기
 
Advanced git
Advanced gitAdvanced git
Advanced git
 
GithubWithTerminal.pptx
GithubWithTerminal.pptxGithubWithTerminal.pptx
GithubWithTerminal.pptx
 
[170403 2주차]C언어 A반
[170403 2주차]C언어 A반[170403 2주차]C언어 A반
[170403 2주차]C언어 A반
 

GIT_GETCHA_HANJUNG

  • 2. • 여러 사람이 동시에 하나의 코드를 수정 => 다른 사람이 수정하는 부분을 신경 써야 한다. 큰 프로젝트를 하는 환경 • 버전 관리가 필요한 개발 => 개발되는 새로운 버전의 코드를 어떻게 관리할지 고려해야 한다.
  • 3. 큰 프로젝트에서 Github을 쓰면!  소스코드가 변경된 이력을 쉽게 확인가능  특정시점으로 돌아갈 수 있음  버전 관리 용이
  • 4. Git의 큰 흐름 Work Tree(Working directory)  실제로 작업을 하는 공간 Index(staging area)  변동된 파일의 상태를 기록  기록하고자 하는 것은 Index에 기록이 되어있어야 함.  이 작업을 staging 이라 함 Repository  커밋을 할 경우 저장소에 변동 사항을 저장  이러한 저장사항들을 보며 변동사항을 알 수 있다. Working directory Staging area Repository Remote Repository git add git push git commit Remote Repository  Push를 하게 되면 원격과 로컬상의 변경 이력이 동일하게 됨  다른 사람들과 공유를 하게 되는 저장소이다.
  • 5. 저장소를 만들어 준다. 저장소를 복사한다. 원격 저장소를 복사한다. 변경사항을 index로 올려준다. 변경내용을 확정해준다. 변경내용을 발행해준다. 원격 저장소와 로컬 저장소를 맞춰서 갱신해준다. 1 2 3 4 5 6 7 branch를 만든다. branch를 지운다. 원래 branch와 다른branch의 다른점을 보여준다. Branch와 합병시켜준다. 8 9 1 0 1 1 간단한 Git 명령어
  • 6. +cherry pick, rebase Branch에서 작업을 할 때 특정 커밋을 가져오고 싶을 때가 있는데 그때 Cherry-pick을 사용한다. (고른 커밋 하나에 대해서만 rebase) Rebase를 하게 되면 다음과 같은 형태의 모습을 보인다. 이 과정을 거치고 merge를 하게 되면 좀 더 깔끔한 Log를 만들게 된다.
  • 7. • Centralized Workflow => 하나의 마스터 브랜치를 이용하여 개발한다. • Feature branch Workflow => Centralized에서 좀 더 나아가 기능별 브랜치를 만들어서 작업을 함 => 격리된 작업 환경을 제공하여 마스터를 중심으로 안전하게 개발이 가능 • Gitflow Workflow => branch를 이력을 기록하는 branch, develop branch, release branch, hotfix branch 등 rule을 정해 관리한다. • Forking Workflow => 모든 프로젝트 참여자가 개인적인 로컬 저장소와 원격저장소 두개를 갖는 방식이다. => 프로젝트 관리자만 다른 개발자들의 기여분을 공식 저장소에 저장할 수 있다. => 오픈소스에 적합하다. 여러가지 Git Workflow
  • 8. 1. 중앙 저장소 생성 1. Centralized Workflow 3. A코드 수정 후 반영2. 중앙 저장소 복제 왜 실패한 것일까? A가 코드를 수정한 후 B는 최신 커밋 이력을 소유하지 않고 있기 때문에 4. B코드 수정 후 반영 실패 5. 최신 커밋 이력 반영충돌이 발생 했을경우! 서로 다른 코드를 수정했을 경우 문제가 발생하지 않겠지만, 같은 코드를 수정했을 경우 선택을 해야한다. 6.상태를 확인 해 문제가 발생한 곳을 찾아본다. 그리고 수정한다.
  • 9. 2. Feature Branch Workflow 1. branch생성 2. 작업을 함 3. 기능개발이 완료 될 경우 push를 하여 반영시킴 4. A는 B의 코드에 수정할 부분이 있다고 하고 B는 수정을 한다. 5. 수정을 한 후 병합시킨다.
  • 10. 3. Gitflow Workflow 1. 이력관리 2. 기능 3. 릴리즈 4. 유지보수
  • 11. 3. Gitflow Workflow 1. 이력관리 2. 기능 3. 릴리즈 4. 유지보수 master와 develop 브랜치를 따로 둬서 master에 release태그를 매기기 쉽게 함 develop 브랜치에서 나와 개발을 함, master와는 어떤 상호작용도 하지 않는다. 어느정도 develop이 완료 됬을 경우 develop 기준으로 릴리즈를 위한 브랜치를 따서 master에 병합한다. 긴급하게 오류수정이 있을 때 master에서 브랜치를 따 수정 후 develop과 master에 모두 반영시킨다.
  • 12. 3. Gitflow Workflow 1. 개발을 위해 develop branch를 만든다 2. develop branch에서 따서 개발을 시작한다. 3. Release를 하게 될 경우 Develop branch에서 release branch를 만든다. 4. Release를 해줄 때는 master, develop에 모두 push를 해준다. * 버그가 있을 때 Master에서 branch를 따와 수정하고 Develop, master모두에 반영해준다.
  • 13. 4. Forking Workflow 1. 중앙 저장소 생성 2. 참여자들은 저장소를 복제하여 local에 만든다. 3. 참여자들은 다른 워크플로우 처럼 개발을 한 후 커밋, 푸시를 한다. (이때 풀 리퀘스트를 하면 관리자에게 요청이 간다) 4. 관리자는 코드를 직접 받아보거나 풀 리퀘스트로 검토하여 병합한다. origin origin upstream upstream 두 개의 stream
  • 14. +smartgit(GUI)을 통한 간단한 예제 제 repository중 하나를 clone해 봤습니다. 프로젝트가 생긴 것을 볼 수 있습니다. Log를 통해 커밋했던 기록을 그래프로 볼 수 있습니다.
  • 15. +smartgit(GUI)을 통한 간단한 예제 여기에 add branch를 통해 test_getcha라는 새로운 branch를 만들었습니다. 새로운 branch가 만들어 진 것을 볼 수 있습니다. 간단한 코드 수정을 해보겠습니다.화면에 변동이 있는 파일과 상대경로가 나옵니다.
  • 16. +smartgit(GUI)을 통한 간단한 예제 Commit 버튼을 누르면 수정된 파일을 커밋하게 됩니다. 여기서 commit을 하고 싶은 파일만 체크박스를 선택해 줄 수 있습니다. 현재 branch(test_getcha)에 push를 할지 matching 되는 모든 branch에 push할지 선택하여 push를 하게 됩니 다.. 이 과정을 거치면 test_getcha branch에 수정사항이 올라가게 됩니다.