Git Rebase 작동 방법 및 Git Merge 및 Git Interactive Rebase와 비교
5820 단어 programminggithubbeginnersgit
간단한 소개
git를 사용하는 데는 여러 가지 방법이 있는데, 만약 그것들이 깨끗하고 손해를 입지 않는다면, 대다수가 좋을 것이다.
하지만 스페이스 vs.tab과 마찬가지로 IT 세계에서git rebase 팬과git merge 팬 사이에서도 전쟁이 벌어지고 있다.
다음과 같은 문제에 대해 많은 논쟁이 있다.
- 어느 길이 더 좋아요?
- 뭐가 더 깨끗해요?
- 뭐가 더 편해요?
- 어느 것이 더 선명한git도를 제시했습니까?
- 왜 그게 중요해, 어떤 게 더 위험해?
본문에서 git merge,git rebase,git interactive rebase 간의 차이점을 설명해 드리겠습니다.
나는 너에게 장점과 단점을 알려줄 것이다. (더 나쁘거나 더 나쁜 선택은 없고, 주로 그 안에 있고, 선호만 있을 뿐이다.)
나도 가장 흔히 볼 수 있는 질문에 대답해 보려고 한다.
가자!
만약 당신이 동영상을 좋아한다면, 여기는 유튜브 버전입니다.
Git rebase:
git rebase는 어떻게 작동하는지
피쳐를 개발할 때 기본 분기에서 피쳐 분기를 생성합니다.
기능 분기에서 모든 제출을 가져오고 주 분기로 이동하려면git rebase를 사용합니다.
이런 유형의git rebase는 제출할 때마다 많은 가능성을 가지고 조작할 수 없으며, 그것들을 모두 목적지로 옮길 수 있습니다.
모든 제출을 더욱 잘 제어하기 위해git interactive rebase를 연구할 필요가 있습니다. 이것은 우리에게 더 많은 맞춤형 가능성을 제공할 것입니다.
당신은 어떻게 중요한 기초를 개발합니까
git rebase를 시작하는 것은 매우 간단합니다. 터미널에 코드를 한 줄만 입력하면 됩니다.
다음을 입력하여 Rebase를 개발할 수 있습니다.
git checkout feature-branch
git rebase your-main-branch(for example master or develop)
나는 어떻게 중기 충돌을 복구해야 합니까
리베이스 충돌을 해결하는 두 가지 방법을 보여드리고 싶습니다.
git 충돌 해결:
수동으로 충돌을 해결하고 다음과 같은 방법으로 파일을 추가할 수 있습니다.
git add
및 유형:git rebase --continue
커밋 건너뛰기:
다음을 입력하여 커밋을 건너뛸 수 있습니다.
git rebase --skip
git rebase 보안
만약 우리가 우리가 무엇을 하고 있는지 알고 있다면, 네,git rebase는 안전합니다.
어쨌든 우리는 관심을 필요로 한다.
비록 우리가 큰 손실을 입지 않았다 하더라도, 우리는 시간을 써서 문제를 해결해야 하기 때문이다.
왜 git rebase가 위험한가
Git rebase 우리가 조심하지 않으면 좀 위험할 수도 있어.
특히 시간이 촉박한 프로젝트에서
무력으로 추진해야 하기 때문에, 그것은 약간의 역사를 개작했다.
물론 차인 기초를 철회할 수도 있다.그럼에도 불구하고, 제출을 재개하는 데 걸리는 시간보다 조금 길다.
Git rebase pros
- 깨끗한git 그림
- 한 번에 한 번 더 쉽게 액세스할 수 있습니다.
- 청소부 총지출
Git rebase cons
- 원격 기반 재설정 시 강제 푸시 필요
- 위험할 수도 있어, 역사를 새로 썼으니까.
- 초보자에겐 쉽지 않아
- 정상적인 베이스를 사용해서 제출을 조작할 가능성이 별로 없습니다
Git interactive rebase:
git interactive rebase는 어떻게 작동하는지
Git interactive rebase의 작동 원리는 일반적인 rebase와 매우 비슷합니다.
이것은 모든 제출을 쉽게 관리할 수 있도록 보이는 편집기를 제공합니다. 이렇게 하면 이동된 제출을 보지 않을 수 있습니다.
대형 지점, 대형 저장소, 그리고 깨끗하지 않은git 역사에 특히 유용하다.
Git 대화형 기본 설정 예
git interactive rebase를 실행하려면 터미널에 다음과 같은 일반 작업과 유사한 절차를 입력해야 합니다.
git checkout feature-branch
git rebase -i your-main-branch(for example master or develop)
그러면 각 커밋에 대한 방법을 선택할 수 있는 커밋 목록이 표시됩니다.
- 선택, 당신은 약속을 유지하고 추진할 주요 내용
-reword, 제출한 메시지를 변경합니다.
- 편집, 제출을 편집할 수 있음
-squash, 이 방법으로 제출한 것은 하나로 압축됩니다.
- 수정, 압축과 유사하지만 제출 로그를 삭제합니다
- 삭제, 제출 삭제
Git interactive rebase pros
- 일반 베이스와 동일
- 이것은 우리가 매번 제출을 더욱 쉽게 조종할 수 있도록 하는 아주 좋은 편집기이다
- 환매 역사의 혼란을 신속히 청산할 수 있어
Git interactive rebase cons
- 일반 베이스와 유사
Git 통합
git 합병은 어떻게 작동하는지
Git merge는 현재 분기의 모든 컨텐트를 가져와 대상 분기에 배치하는 방법입니다.
예를 들어 우리는 기능 지점을 주 지점에 통합할 수 있다.
이 경우,git는 새로운 통합 제출을 만들고,feature 지점에서 모든 내용 (역사 기록, 코드, 제출) 을 가져오고, 모든 내용을 주 지점에 넣습니다.
합병과 재설정 기초 사이에는 어떤 차이가 있습니까
merge와rebase 사이의 주요 차이점은rebase가 매우 깨끗하고 우호적인git도를 만들었고,merge는graphspaghetti와 유사한 것을 생성할 수 있다는 것이다.
어떻게 git 합병을 진행합니까
우리는 세 가지 방법으로 이 점을 할 수 있다.
첫 번째 방법은fetch와merge의 조합이다.
주로 GitHub이나 BitBucket 등 프로그램에서 통합 요청을 만들기 전에 지점 내의 주 지점을 통합하여 로컬 충돌을 해결하는 데 사용됩니다.
당김:
git checkout feature-branch
git pull origin your-main-branch(for example master or develop)
결합:git checkout feature-branch
git merge your-main-branch(for example master or develop)
합병하기 전에 기본 주소를 다시 설정해야 합니까?
리베이스를 사용하여 제출을 압축하고gitflow를 살짝 정리할 수 있습니다.
다음에 당신은 합병을 해서 깨끗한 도표를 얻을 수 있습니다.
Git 통합 Professional
- 브랜치를 연결하는 빠른 방법
- 누구에게나 쉽죠
- 찼을 때 쉽게 회복
Git 통합 cons
- 불결한 나무
- Git 그래픽과 역사가 뚜렷하지 않아
-bisect 등git 방법으로 디버깅하는 것이 더 어려울 수 있음
결론
축하해, 이제git rebase 마스터야!
나는 모든 항목이 다르기 때문에 너에게 어느 것이 더 좋은지 알려주지 않을 것이다.어떤 회사는 규모가 매우 크다. 몇 년 동안 어떤 회사는 시간의 압력에 직면하고 어떤 회사는 품질을 매우 중시하며 어떤 회사는 품질에 전혀 관심이 없다.
어쨌든, 지금은 어떤 것이 당신에게 더 적합한지, 장점, 단점, 위험을 식별할 수 있어야 한다.
나는 내가 이미 당신에게 지점을 갱신하는 이 세 가지 주요 방법 사이의 요점을 설명했기 때문에, 당신이 장래에 그것들을 사용하는 데 문제가 없을 것이라고 희망합니다.
만약 당신에게 또 문제가 있거나, 혹은 내가 당신에게 흥미를 느끼는 화제를 위해 글을 좀 쓰게 하고 싶다면, 언제든지 평론을 발표하세요.
읽어주셔서 감사합니다.
도리의 라드크
Reference
이 문제에 관하여(Git Rebase 작동 방법 및 Git Merge 및 Git Interactive Rebase와 비교), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/duomly/tutorial-how-does-git-rebase-work-and-compare-with-git-merge-and-git-interactive-rebase-b85텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)