10

Ktoś wysłał mi żądanie pobrania na BitBucket. Wprowadzona zmiana jest przesłana do domyślnego oddziału. Zanim go scalę, chciałbym wprowadzić kilka poprawek, ale co ważniejsze, chciałbym opublikować podgląd tej zmiany, aby społeczność mogła ją ocenić i sprawdzić, czy są zadowoleni.Jak powinienem obsłużyć żądanie ściągania w BitBucket, które wymaga pewnych poprawek?

Idealnie chciałbym pociągnąć zmiany na głównej repo, ale umieścić go na oddział. Dokonaj kilku poprawek. Oznacz to tak, jakbym to zrobił, i opublikuj. Jednak wydaje się, że nie jest to możliwe: jeśli dobrze rozumiem, gałąź jest "zapieczona" i nie mogę przenieść zmiany na inną gałąź. Czy to jest poprawne?

Jeśli tak, co mogę zamiast tego zrobić? Mógłbym pociągnąć, a potem połączyć drugą głowę w niepamięć, jednocześnie tworząc gałąź od zmiany, którą pociągnąłem. Mogę też wykonać pracę na widelcu, ale oznacza to, że nie będzie znacznika związanego z tą kompilacją w głównym repozytorium. Czy powinienem zrobić coś zupełnie innego?

P.S. Sama zmiana jest wysokiej jakości i to jest , a nie o zwrócenie się do oryginalnego autora o poprawienie.

+0

byłoby możliwe jest przeniesienie zmian do "domyślnych", ale pozostawienie ich niezmienionych, dodawanie zakładek do nowej głowy, aby nadać jej etykietę. W ten sposób nie masz problemów związanych z rebase. Nie jestem w 100%, jeśli BitBucket obsługuje zakładki. –

Odpowiedz

3

Zamiast używać Bitbucket "zaakceptuj żądanie ściągnięcia", po prostu przenieś zmiany do lokalnego repo. Możesz użyć rebase, aby przenieść commit (lub zestaw commitów) do nazwanego oddziału. Następnie po prostu przesyłaj zmiany główne repo bitbucket. (I ewentualnie odrzucić wniosek bibucket ściągania z komentarzem mówiąc zmiany zostały push głównego repo)

Na przykład:

jeśli REPO: bitbucket/Projecta/MainRepoForProjectA

i pullrequest jest od: bitbucket/someuser/MainRepoForProjectA

  1. wyciągnąć z bitbucket/someuser/MainRepoMainRepoForProjectA
  2. rebase do nowo wyciągniętych commitów do nazwanego oddziału.
  3. Wprowadź dodatkowe zmiany, które chcesz wprowadzić.
  4. push bitbucket/Projecta/MainRepoMainRepoForProjectA

Uwaga: Jeśli nie korzystałeś wcześniej rebase:

  1. Włącz go w TortoiseHg Plik -> Ustawienia -> Rozszerzenia
  2. Aktualizacja do szefa oddziału, który chcesz przenieść również zmiany.
  3. prawym przyciskiem myszy na bazie zmian do ruchu -> zmienić historię -> rebase
2

Co akceptując wniosek ciągnącego nie jest opisana w docs; spróbuje się połączyć, a będziesz rozwiązywać konflikty. Dokumenty wspominają, że można ustawić gałąź docelową podczas tworzenia żądania ściągnięcia. Ale ponieważ Twój oddział jeszcze nie istniał, Twój współpracownik nie mógł go wybrać.

Musisz więc pociągnąć za lokalny komputer i move some commits to a new branch in Hg, a następnie przejść do bitbucketu.

Czytają bazę danych docs, ponieważ zmiana historii będzie miała wpływ na ważność repozytoriów, będzie musiał ponownie się rozwidlić, aby ponownie zsynchronizować się z tobą. Może to być kłopotliwe, jeśli ma już gotowy kod wysokiej jakości.

0

One mogą ciągnąć kod wniosek ciągnąć jak:

git fetch origin refs/pull-requests/$PR_NO/from:$LOCAL_BRANCH 
Powiązane problemy