오픈소스 git&github 스터디(2)
브랜치
브랜치 기능 (Branch) : 동시에 여러 개발자들이 프로젝트에서 각기 다른 기능을 개발할 수 있도록 함.
마스터 브랜치 : 배포가 가능한 버젼. 프로젝트에서 주 버젼이 됨. (자동으로 생성됨)
항상 안정화되고 배포가능한 상태이어야 하기 때문에 병렬적인 작업이 필요함.
git branch : 현재 브랜치 목록을 보여줌
*main 브랜치가 default브랜치명임.
(여담 : master 브랜치가 디폴트였는데, 노예제를 연상시킨다는 이유로 main으로 변경되었다 한다...!)
git branch (추가하고자 하는 브랜치명) : 브랜치가 생성됨.
C:\Tutorials\Git-Tutorial>git branch
* main
C:\Tutorials\Git-Tutorial>git branch develop
C:\Tutorials\Git-Tutorial>git branch
develop
* main
git checkout (브랜치명) : 브랜치를 선택한다.
C:\Tutorials\Git-Tutorial>git branch
develop
* main
C:\Tutorials\Git-Tutorial>git checkout develop
Switched to branch 'develop'
C:\Tutorials\Git-Tutorial>git branch
* develop
main
main에서 develop브랜치로 선택이 변경되었음을 확인할 수 있다.
수정된 코드를 main 브랜치에 병합하고 싶다면
git merge (브랜치명)을 입력하여 main 브랜치에 병합해준다.
병합 수행 시 main 브랜치에서 수행한다.
병합이후 필요없어진 브랜치는 -d 옵션을 사용하여 삭제한다.
C:\Tutorials\Git-Tutorial>git branch -d develop
Deleted branch develop (was e1acb02).
C:\Tutorials\Git-Tutorial>git branch
* main
브랜치 충돌(conflict) 처리하기
def add(a,b):
return a+b
def sub(a,b):
return a-b
def mul(a,b):
return a*b
def div(a,b):
return a//b # 주석
def add(a,b):
return a+b
def sub(a,b):
return a-b
def mul(a,b):
return a*b
def div(a,b):
return a//b # 주석
main 브랜치의 코드
def add(a,b):
return a+b
def sub(a,b):
return a-b
def mul(a,b):
return a*b
def div(a,b):
return a//b
develop 브랜치의 코드
서로 다르므로 merge를 진행할 때 충돌이 일어난다.
파일을 열어보면 main과 develop 브랜치의 다른 부분을 명시하고 있다.
수동으로 삭제한뒤 저장하여 add & commit 하는 방법이 있다.
원격 저장소(Remote Repository) 관리하기
이해가 잘 안된다.
..ㅠㅠ
로그(log) 다루기
▶ stat: 각 커밋에 따른 통계 정보를 출력합니다.
▶ graph: 브랜치(Branch)와 병합(Merge) 정보를 그래프 형태로 출력합니다.
▶ p: 커밋에 적용된 구체적인 사항을 출력합니다.
▶ pretty: 지정된 형식으로 커밋 정보를 출력합니다.
사용 시)
git log stat
git log -p
git log --pretty=oneline
pretty 사용 예시
C:\Tutorials\Git-Tutorial>git log --pretty=format:"%h -> %an, %ar : %s" --graph
* e1ce4b6 -> minhee020, 19 minutes ago : Add my_module [Div] & Comment
|\
| * 700429a -> minhee020, 28 minutes ago : Add my_module [Div]
* | 54c6062 -> minhee020, 26 minutes ago : Add my_module [Div] & Comment
|/
* e1acb02 -> minhee020, 38 minutes ago : Add my_module [Mul]
* a317e4e -> minhee020, 2 hours ago : Add my_module [Sub]
* 9109cb6 -> minhee020, 2 hours ago : Add my_module [Add]
* fa9bbda -> minhee020, 3 hours ago : Add Text File [document.txt]
출처: https://ndb796.tistory.com/193?category=1029186 [안경잡이개발자]
이미 github에서 ui를 통해 깔끔한 형태로 제공하고 있기 때문에 꼭 알아둬야하는건 아니다.
Author And Source
이 문제에 관하여(오픈소스 git&github 스터디(2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@2mini/오픈소스-gitgithub-스터디2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)