IT story

`--squash`와`--no-ff --no-commit`의 차이점은 무엇입니까?

hot-time 2020. 12. 31. 22:53
반응형

`--squash`와`--no-ff --no-commit`의 차이점은 무엇입니까?


마이크로 커밋을 숨기려면 어느 것을 사용해야합니까?

다른 부모 git merge --squash의 유일한 차이점은 git merge --no-ff --no-commit무엇입니까?


차이점들

이러한 옵션은 별도의 목적으로 존재합니다. 저장소는 다르게 끝납니다.

주제 브랜치에서 개발을 완료 한 후 저장소가 다음과 같다고 가정 해 보겠습니다.

여기에 이미지 설명 입력


--squash

master를 체크 아웃 한 다음 git merge --squash topic; git commit -m topic, 다음을 얻습니다.

여기에 이미지 설명 입력


--no-ff --no-commit

대신,하면 다음과 git merge --no-ff --no-commit; git commit -m topic같이 표시됩니다.

여기에 이미지 설명 입력

마이크로 커밋 숨기기

마이크로 커밋 을 정말로 숨기려면 ( 저장소에서 삭제의미 합니다) --squash. 위의 이미지에서 볼 수 있듯이 스쿼시하지 않으면 마이크로 커밋을 실제로 숨기지 않습니다. 또한 일반적으로 주제 분기를 세계로 밀지 않습니다. 주제 분기는 주제가 성숙해지기위한 것입니다.

히스토리에 모든 마이크로 커밋을 포함하고 다른 개발 라인 (위 이미지의 녹색 라인)에 남겨 두려면 --no-ff --no-commit. 그러나 a) 이것은 브랜치가 아니며 b) 커밋의 또 다른 부모이기 때문에 Git에서 실제로 아무 의미가 없다는 것을 기억하십시오.

정말로 이해하고 싶다면 Git Branching-What a Branch Is를 참조하십시오 .

참조 URL : https://stackoverflow.com/questions/11983749/what-are-the-differences-between-squash-and-no-ff-no-commit

반응형