IDEA에서 단일 푸시에 로컬 커밋 그룹을 결합하는 방법은 무엇입니까?


85

IDEA에서는 커밋을 푸시하려고합니다.

원격 서버에서 단일 작업처럼 보이도록 요구 사항이 있습니다.

클릭하면 아래와 같은 윈도우가 보입니다 여기에 이미지 설명 입력

여기에 스쿼시 확인란이 표시 될 것으로 예상했지만 표시되지 않습니다.

제발 도와주세요.


2
IDEA 조언을 제공 할 수 없지만 스 쿼싱은 커밋이 아닌 대화 형 리베이스 또는 병합의 일부입니다. 거기를보세요.
musiKk 2014

답변:


115

rebase를 사용하여 할 수 있습니다. VCS / Git / Rebase로 이동합니다 . 그런 다음 대화 형 옵션을 선택합니다. 스쿼시 할 커밋을 선택할 수있는 커밋 목록이 표시됩니다.

당신이 히트 한 후 리베이스 시작을 A가 커밋 숙청에 대한 커밋 메시지를 위해 당신을하라는 메시지가 표시됩니다. 그런 다음 푸시 대화 상자를 사용하여 스쿼시 된 커밋을 푸시 할 수 있습니다.

스쿼시 대화 상자

IntelliJ의 rebase에 대한 자세한 정보는 여기에 있습니다 .


9
"Rebase branch"대화 상자의 "Onto field"에 무엇을 입력해야하는지 알기 위해이 Git Tools-Rewriting History 기사 를 읽는 것도 도움이 HEAD~3될 수 있습니다. 예를 들어 마지막 3 개의 커밋을 선택하는 데 사용할 수 있습니다.
TmTron

많은 커밋을 함께 스쿼시하면 각 커밋의 개별 세부 정보가 손실됩니까? 하나의 큰 커밋처럼 보일까요?
ycomp

@ycomp 예, 인터랙티브 리베이스는 히스토리를 다시 작성하므로 개별 스쿼시 커밋이 손실되고 새 단일 커밋이 그 자리에 생성됩니다.
Bohuslav Burghardt

감사합니다. 스쿼시를 취소 할 수 있습니까?
ycomp

@ycomp 나는 실제로 그렇게 한 적이 없지만 가능해야합니다. 다음 SO 게시물을 참조하십시오 : stackoverflow.com/q/10260151/1291150 , stackoverflow.com/q/134882/1291150
Bohuslav Burghardt

33

새로운 방법이 있습니다.

버전 제어-> 로그-> 커밋을 마우스 오른쪽 버튼으로 클릭하고-> Interactively rebase from here나머지 커밋을 선택 / 스쿼시하도록 선택할 수 있습니다.


1
이 접근 방식의 문제점은 여러 커밋에 대해 "Squash"를 선택할 수있는 방법이 없으며 하나씩 수행하는 것이 지루하다는 것입니다.
Dmitry Serdiuk

4
@DmitrySerdiuk 시프트 클릭하여 스쿼시하려는 커밋을 선택한 다음 마우스 오른쪽 버튼을 클릭-> 스쿼시를 선택할 수 있습니다.
Aarjav

1
@Aarjav OH MY GOD 이것은 정확히 내가 그것이 없다고 생각했습니다! 대화 상자의 오른쪽 클릭 메뉴에 대한 힌트가 없습니다.
o_nix

21

나를 위해 intellij를 사용하는 가장 간단한 방법은 다음과 같습니다.

  • Log탭으로 이동하여 스쿼시하려는 커밋을 선택하십시오.
  • 마우스 오른쪽 버튼을 클릭하고 Reset Branch to this commit
  • mixin커밋에서 변경 사항을 유지 하는 옵션을 선택하십시오.
  • 변경 사항을 커밋하고 Amend commit옵션 을 확인하는 것을 잊지 마십시오

1
이것은 실제로 가장 간단한 방법이며 스트레스가 적고 오류가 발생하기 쉽습니다.
davrog10

2
3 단계에서 모든 변경 사항이 커밋을 위해 이미 준비된 것보다 Soft옵션 을 선택하는 것이 좋습니다 Mixed.
provisota
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.