651 Stimmen

Übertragungen in einen anderen Zweig verschieben

Ist es möglich, Änderungen von einem Zweig auf einen anderen zu übertragen und zu verschieben.

Angenommen, ich habe Änderungen in BRANCHE1 und wollen sie dazu bringen BRANCHE2 .

De BRANCHE1 ist es zulässig, dies zu tun:

git push origin **BRANCH2**

Und dann BRANCH1 zurücksetzen?

9voto

John Doe Punkte 133

Danke für die Antwort von @SLaks , das funktioniert bei mir meistens. Aber für den Fall, dass die Zweige unterschiedliche Köpfe haben. Eine praktische Methode ist die Verwendung von Cherry-Pick.

  1. git log - auf Zweig1 mit Ihren Änderungen
  2. copy commit SHA Ihrer Änderungen
  3. git checkout branch2 - wo Sie Ihre Änderungen anwenden können
  4. git cherry-pick SHA_OF_COMMIT_FROM_STEP_2

5voto

testing Punkte 18753

In meinem Fall hatte ich einen lokalen Commit, der nicht nach origin\master aber an mein lokales Unternehmen gebunden master Zweigstelle. Dieser lokale Commit sollte nun in einen anderen Zweig verschoben werden.

Avec Git-Erweiterungen können Sie etwa so vorgehen:

  • (Erstellen Sie, falls noch nicht vorhanden, und) checken Sie den neuen Zweig aus, in den Sie Ihren Commit verschieben wollen.
  • Wählen Sie den Commit aus der Historie aus, der in diesen Zweig übertragen und gepusht werden soll.
  • Klicken Sie mit der rechten Maustaste und wählen Sie Cherry Pick Commit .
  • Presse Kirschen pflücken Taste nach.
  • Der ausgewählte Commit wird auf Ihren ausgecheckten Zweig angewendet. Nun committen und pushen Sie es.
  • Schauen Sie sich Ihren alten Zweig mit dem fehlerhaften Commit an.
  • Setzen Sie diesen Zweig auf den vorletzten Commit zurück, bei dem alles in Ordnung war (achten Sie darauf, was Sie hier tun!). Sie können das tun, indem Sie mit der rechten Maustaste auf die vorletzte Übergabe klicken und Aktuelle Verzweigung hierher zurücksetzen . Bestätigen Sie die Opperation, wenn Sie wissen, was Sie tun.

Sie könnten das auch auf der GIT-Befehlszeile . Beispiel kopiert aus David Christensen :

Ich denke, Sie werden feststellen, dass git cherry-pick + git reset t schnellerer Arbeitsablauf:

Unter Verwendung desselben Szenarios, wobei "Feature" der Zweig mit der oberste Commit falsch ist, wäre es viel einfacher, dies zu tun:

git checkout master
git cherry-pick feature
git checkout feature
git reset --hard HEAD^

Das spart eine Menge Arbeit und ist das Szenario, das git cherry-pick entwickelt wurde, zu bewältigen.

Ich möchte auch darauf hinweisen, dass dies auch funktioniert, wenn es nicht die Commit ist; man braucht nur eine über:

git checkout master
git cherry-pick $sha1
git checkout feature
git rebase -i ... # whack the specific commit from the history

5voto

HandyPawan Punkte 894

Wenn Sie den Code in einen anderen Zweig verschieben, folgen Sie einfach dem unten stehenden Git-Befehl. Zur Erinnerung: Demo ist mein anderer Zweigname, den Sie durch Ihren Zweignamen ersetzen können.

git push origin master:demo

3voto

Ramiz Khan Punkte 53

Sie können dies leicht tun

git status
git add .
git commit -m "any commit"
git pull origin master 
git push origin master:development # assuming 'development' is the target branch name.

-1voto

Srinu Mareti Punkte 29
git init 
#git remote remove origin
git remote add origin  <http://...git>
echo "This is for demo" >> README.md 
git add README.md
git commit -m "Initail Commit" 
git checkout -b branch1 
git branch --list
****add files***
git add -A
git status
git commit -m "Initial - branch1"
git push --set-upstream origin branch1
#git push origin --delete  branch1
#git branch --unset-upstream

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X