나는 커밋을 비공개로 유지하기를 원하기 때문에 원격 쪽에서 하나의 큰 커밋으로 번들되기를 원합니다. 국지적으로 분리되어 있어야합니다.번들은 커밋/비공개 커밋을 유지합니다.
사용 사례는 예를 들어 정적 블로그에서의 작업입니다. 초안 단계를 커밋하고 로컬에서 추적해야하지만 푸시 할 때만 출시 된 버전 만 게시하고 싶습니다.
git 및/또는 mercurial 용액을 사용할 수 있습니다.
나는 커밋을 비공개로 유지하기를 원하기 때문에 원격 쪽에서 하나의 큰 커밋으로 번들되기를 원합니다. 국지적으로 분리되어 있어야합니다.번들은 커밋/비공개 커밋을 유지합니다.
사용 사례는 예를 들어 정적 블로그에서의 작업입니다. 초안 단계를 커밋하고 로컬에서 추적해야하지만 푸시 할 때만 출시 된 버전 만 게시하고 싶습니다.
git 및/또는 mercurial 용액을 사용할 수 있습니다.
아이디어는 전용 분기에서 커밋을 수행하는 것이지만 master
(또는 푸시하려는 다른 모든 공용 분기)에 git merge --squash
(또는 다른 공개 브랜치)으로 커밋해야합니다. 커밋이 커지기 때문에 커밋됩니다.
그런 다음 master
을 원격 저장소에 푸시합니다.
페이지의 "In git, what is the difference between merge --squash
and rebase
?"의욕 2.1에서
참고 : Mercurial에서 squasing 커밋 : http://stackoverflow.com/a/1725638/6309. 더 일반적으로 : http://stackoverflow.com/questions/6937776/abstracting-frequent-local-commits-with-a-push – VonC
나는 이것이 갈 길이라고 생각한다. 각 기사 초안 단계에 대한 로컬 지사를 유지 한 다음 마스터의 릴리스 버전을 '병합 - 스쿼시'합니다. 나중에 필요가 없으면 커밋 초안을 삭제할 수 있습니다. 이것을 실제로 시도해보고 작동하면 답을 수락합니다 :) – schlamar
나중에 당신이 "비밀"로 변경 집합을 표시 phases를 사용할 수 있습니다. 이 비밀로 나가는 모든 변경 집합을 표시합니다 :
$ hg phase -f --secret "outgoing()"
비밀 변경 집합이 밀거나 기본적으로 뽑아, 그래서 그 명령 다음에이 실 거예요 나가는 변경 집합이 될하지 않습니다 - 비밀로 바로 변경 집합을 표시하기 위해 필요에 따라 조정합니다.
또한 원격 저장소에서 변경 집합을 하나의 커밋으로 사용한다고 가정합니다. 이를 위해 histedit extension을 Mercurial 2.3 이상과 함께 번들로 사용할 수 있습니다. --keep
플래그를 사용하면 원래 변경 집합을 접을 때 제거되지 않습니다.
니스, +1, 나는 그 "비밀"특징을 좋아합니다 : 그것은 http://stackoverflow.com/questions/12159662/create- a-commit-save-it-dont-push-it-than-create-some-more-more-commits-push – VonC
네, 멋진 기능입니다. 단계 개념 위에 구축되는 많은 고급 기능이 있습니다. http://hg-lab.logilab.org/doc/mutable-history/html/을 참조하십시오. –
왜 숨기시겠습니까? --no-ff와 병합 한 다음 각 커밋의 첫 번째 부모 만 따르는 것은 어떻습니까? – knittl