이 기사는 원래 게시되었습니다 여기
소개
git으로 작업하는 방법에는 여러 가지가 있습니다. 깨끗하고 손상을 입히지 않는다면 대부분이 좋을 것입니다.
그러나 공간 대 탭과 마찬가지로 IT 세계에서는 rebase 팬과 git merge 팬 간의 전쟁입니다.
다음과 같은 수많은 주장이 있습니다.
- 어느 쪽이 더 나은가?
- 어느 것이 더 깨끗합니까?
- 어느 쪽이 더 편합니까?
- 어느 것이 더 깔끔한 git 그래프를 제공합니까?
-왜 중요하고, 어느 쪽이 더 위험한가요?
이 기사에서는 git merge, rebase 및 대화형 rebase 간의 몇 가지 차이점에 대해 설명합니다.
장단점에 대해 조금 말씀드리겠습니다(더 좋거나 더 나쁜 옵션은 없으며 대부분 IT 분야에서 선호도가 있을 뿐입니다).
나는 그들에 대해 가장 자주 묻는 몇 가지 질문에 대해서도 대답하려고 노력할 것입니다.
가자!
비디오를 선호하는 경우 여기에 YouTube 버전이 있습니다.
힘내 리베이스:
git rebase는 어떻게 작동합니까?
기능을 개발할 때 일반적으로 기본 분기에서 기능 분기를 만듭니다.
기능 브랜치에서 모든 커밋을 가져와서 메인 브랜치로 옮기고 싶을 때 rebase를 사용합니다.
이러한 유형의 git rebase는 각 커밋에서 조작할 가능성이 많지 않으며 모든 커밋을 가져와 대상으로 이동합니다.
데이터 분석 프로젝트 아이디어
모든 커밋을 훨씬 더 잘 제어하려면 git Interactive rebase를 살펴보는 것이 좋습니다. 그러면 훨씬 더 많은 사용자 정의 가능성이 제공됩니다.
리베이스를 개발하는 방법
git rebase를 시작하는 것은 매우 간단하며 터미널 내부에 한 줄의 코드만 있으면 됩니다.
다음을 입력하여 리베이스를 개발할 수 있습니다.
git checkout feature-branch git rebase your-main-branch(for example master or develop)
리베이스 충돌을 해결하는 방법
rebase로 충돌을 해결하는 두 가지 방법을 보여 드리고자 합니다.
자식 충돌 해결:
충돌을 수동으로 해결하고 다음을 통해 파일을 추가할 수 있습니다.
git add
다음을 입력합니다.
git rebase --continue
커밋 건너뛰기:
다음을 입력하여 커밋을 건너뛸 수 있습니다.
git rebase —skip
git rebase는 안전한가요?
우리가 하는 일을 안다면 예, git rebase는 안전합니다.
어쨌든, 우리는 돌봐야 합니다.
큰 피해를 입히지 않더라도 쫓겨난 리베이스로 인해 문제를 해결하는 데 시간이 많이 걸릴 수 있기 때문입니다.
git rebase가 위험한 이유
Git rebase는 우리가 주의 없이 수행할 때 약간 위험할 수 있습니다.
특히 시간 압박 프로젝트에서.
강제 푸시를 사용할 필요가 있으며 일부 기록을 다시 씁니다.
물론 킥된 리베이스를 되돌릴 가능성도 있다. 그래도 예를 들어 커밋을 되돌리는 것보다 시간이 조금 더 걸립니다.
Git 리베이스 전문가
- 깨끗한 자식 그래프
- 하나, 단일 커밋에 더 쉽게 액세스
- 클리너 본점
fullstack은 typescript로 반응합니다.
Git 리베이스 단점
-리베이스 원격시 강제 푸시를 사용해야 합니다.
- 역사를 다시 쓰기 때문에 위험할 수 있음
-초보자에게는 쉽지 않음
-일반 rebase를 사용하면 커밋을 조작할 가능성이 많지 않습니다.
Git 대화형 리베이스:
git Interactive rebase는 어떻게 작동합니까?
Git 대화형 rebase는 일반 rebase와 매우 유사하게 작동합니다.
각 커밋을 쉽게 관리하는 데 도움이 될 수 있는 가시적인 편집기를 제공하므로 이동하는 커밋에 대해 맹목적인 일이 없습니다.
큰 브랜치, 큰 저장소, 그리 깨끗하지 않은 git 기록에 특히 유용합니다.
Git 대화형 리베이스 예제
git Interactive rebase를 수행하려면 일반 단계와 유사한 단계를 수행하고 터미널에 다음을 입력해야 합니다.
git checkout feature-branch git rebase -i your-main-branch(for example master or develop)
다음으로 각각의 방법 중 하나를 선택할 수 있는 커밋 목록이 표시됩니다.
-pick, you will keep and push commit to the main -reword, you will change the message of the commit -edit, that means you will be able to edit the commit -squash, commits with that method will be squashed into one -fixup, similar to squash, but you will delete log of the commit -drop, it will remove a commit
Git 대화형 리베이스 전문가
- 일반 리베이스와 동일
- 모든 커밋을 더 쉽게 조작할 수 있는 가능성을 제공하는 멋진 편집기
- 우리는 repo의 역사에서 엉망을 빠르게 청소할 수 있습니다.
Git 대화형 리베이스 단점
- 일반 오버플로와 유사
자식 병합
자식 병합은 어떻게 작동합니까?
Git 병합은 현재 브랜치의 모든 내용을 가져와 대상 브랜치에 넣는 방법입니다.
예를 들어 기능 분기를 마스터 분기에 병합할 수 있습니다.
평균 인터넷 보안 키
이 경우 git은 새로운 병합 커밋을 만들고 기능 브랜치에서 모든 콘텐츠(히스토리, 코드, 커밋)를 가져와 마스터 브랜치에 모두 넣습니다.
병합과 리베이스의 차이점은 무엇입니까
병합과 rebase의 주요 차이점은 rebase가 매우 깨끗하고 친숙한 git 그래프를 생성하고 병합이 그래프 스파게티와 같은 것을 생성할 수 있다는 사실입니다.
자식 병합을 수행하는 방법
우리는 세 가지 방법으로 그것을 할 수 있습니다.
첫 번째 방법은 가져오기와 병합을 결합하는 것입니다.
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를 약간 정리하기 위해 rebase를 수행할 수 있습니다.
다음으로 병합을 수행하고 깨끗한 그래프를 만들 수 있습니다.
Git은 프로가 된다
- 가지를 고속으로 접합하는 방법
- 누구나 쉽게
- 발로 차면 매우 쉽게 되돌릴 수 있음
힘내의 단점
-깨끗하지 않은 로그
- Git 그래프와 히스토리가 그다지 깨끗하지 않습니다.
- bisect와 같은 git 메서드를 사용한 디버깅은 더 어려울 수 있습니다.
결론
축하합니다. 이제 git rebase 마스터가 되셨습니다!
프로젝트마다 다르기 때문에 어느 것이 더 낫다고 말하지 않겠습니다. 일부는 규모가 크고, 일부는 시간 압박을 받고 있으며, 일부 회사는 품질 관리를 많이 하고 일부는 전혀 하지 않습니다.
어쨌든, 이제 어느 것이 프로젝트 유형에 더 나은지, 장단점이 무엇인지, 그리고 위험 요소가 무엇인지 인식하는 방법을 알아야 합니다.
브랜치를 업데이트하는 이 세 가지 주요 방법 사이의 주요 요점을 설명했길 바랍니다. 앞으로 사용하는 데 문제가 없을 것입니다.
git에 관심이 있다면 여기 git 치트시트 기사가 있습니다.여전히 질문이 있거나 관심 있는 주제에 대한 기사를 작성하게 하고 싶다면 언제든지 댓글을 남겨주세요!
읽어 주셔서 감사합니다,
Duomly의 Radek
#github #웹 개발 #python #git #자바스크립트
www.youtube.com
Git Rebase가 어떻게 작동하고 Git Merge 및 Git Interactive Rebase와 비교하는지 자습서
이 기사는 원래 게시되었습니다 여기