2016-12-20 1 views
0

Okay, ich habe offensichtlich ein kleines Problem hier zu verstehen, was ich tun muss, um dies richtig zu machen.Pushing Änderungen an Remote-Master nach Rebasing lokalen Zweig

Ich habe eine Menge Commits an den Remote-Master geschoben, den ich jetzt quetschen möchte. Um dies zu tun, habe ich eine git rebase -i HEAD~20 Sitzung gestartet und squash verwendet, um Squash einige Commits in eins.

Nach einigen Konflikten, die ich lösen konnte, blieb mir eine "verkürzte" Version meines lokalen Zweigs - aber ich weiß nicht, wie ich das auf den entfernten Zweig bringen soll.

Wenn ich git status ausführen wird mir sagen, dass die lokalen und Master-Zweig in 1 und 11 commits unterscheiden.

Wenn ich git pull an diesem Punkt laufen würde die gesamte rebase Aktion rückgängig gemacht und ich bin zurück, wo ich begann.

So im Wesentlichen ging ich von so etwas wie:

a     b 
o-->o-->o-->o-->o-->o 
    \  /
     o-->o-->o 

zu

a b 
o-->o 

aber nur lokal. Kann ich die Commits auf der Fernbedienung quetschen, wenn ich lokal drücke?

+0

stash -> squash? – kaitoy

+0

@kaitoy whops, sorry. es ist ziemlich früh für mich - geändert, dass: D – displayname

+0

In der Regel erlauben die normalen Git-Workflows Sie nicht, Geschichte in der Fernbedienung neu zu schreiben (was Sie hier tun, ist Geschichte neu zu schreiben, entfernen diese 11 Commits aus dem Master-Zweig). Wenn Sie der einzige sind, der mit diesem entfernten Zweig arbeitet, können Sie 'git push -f' ausführen, wenn Sie die entsprechenden Berechtigungen haben. Sie sollten dies jedoch nicht tun, wenn andere Benutzer, die ebenfalls auf derselben Remote-Zweigstelle arbeiten, ebenfalls arbeiten. – Alderath

Antwort

2

Es gibt einige Verwirrung in den Begriffen, die Sie verwenden. Es gibt so etwas ist "push local". Die push Aktion ist von Ihrem lokalen zur entfernten.

Wenn Sie also Ihre Änderungen übertragen haben, werden sie im Remote-Repository freigegeben.

Sobald diese Änderungen freigegeben sind, wird es nicht empfohlen, sie zu quetschen. Seit jemand, der bereits pulled Ihre Änderungen hat, wird Probleme haben.

Es ist aber möglich. Sie müssen zwingen, Ihre Änderungen zu drücken.

git push -f

+0

Oh, okay. Nun, es ist für eine Pull-Anfrage auf GitHub - also hat niemand meine Änderungen noch außer mir gezogen. Also sollte das nichts kaputt machen, denke ich? – displayname

+0

Es sollte nichts brechen. Es schreibt die Geschichte neu. –

+0

Arbeitete wie ein Charme! Vielen Dank :) – displayname

1

Ja. Mach einfach einen Kraftschub von git push -f.

Verwandte Themen