Ich versuche ein Git-Repository auf GitHub zu aktualisieren. Ich habe eine Reihe von Änderungen vorgenommen, sie hinzugefügt, mich verpflichtet und dann versucht, eine Änderung vorzunehmen git push
. Die Antwort sagt mir, dass alles auf dem neuesten Stand ist, aber eindeutig nicht.
git remote show origin
antwortet mit dem Repository, das ich erwarten würde.
Warum teilt Git mir mit, dass das Repository auf dem neuesten Stand ist, wenn lokale Commits im Repository nicht sichtbar sind?
[searchgraph] git status
# On branch develop
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Capfile
# config/deploy.rb
nothing added to commit but untracked files present (use "git add" to track)
[searchgraph] git add .
[searchgraph] git status
# On branch develop
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: Capfile
# new file: config/deploy.rb
#
[searchgraph] git commit -m "Added Capistrano deployment"
[develop 12e8af7] Added Capistrano deployment
2 files changed, 26 insertions(+), 0 deletions(-)
create mode 100644 Capfile
create mode 100644 config/deploy.rb
[searchgraph] git push
Everything up-to-date
[searchgraph] git status
# On branch develop
nothing to commit (working directory clean)
git push origin x
wurde Zweig x immer noch nicht eingerichtet, um in Zukunft gepusht zu werden. Es war auf eine bestimmte Push-Spezifikation im.gitconfig
[remote "origin"]
Abschnitt zurückzuführen, die das Verhalten von Git verursachte.Dies ist mir passiert, als meine SourceTree-Anwendung während der Bereitstellung abgestürzt ist. Und auf der Kommandozeile schien es, als wäre die vorherige
git add
beschädigt worden. Wenn dies der Fall ist, versuchen Sie:Beim letzten Befehl müssen Sie möglicherweise den Zweig festlegen.
Denken Sie daran, dass dies ausreicht, wenn Sie keine Verzweigung oder ähnliches durchgeführt haben. Stellen Sie in diesem Fall sicher, dass Sie auf den richtigen Zweig wie drücken
git push origin develop
.quelle
Versuchen:
quelle
Bitte versuchen Sie, zum letzten Commit zu gehen, und tun Sie es dann
git push origin HEAD:master
.quelle
Push the current branch to the remote ref matching master in the origin repository. This form is convenient to push the current branch without thinking about its local name.
git push
: / Das funktionierte auch für mich :git push origin HEAD:my_branch_name
.In meinem Fall hat keine andere Lösung funktioniert. Ich musste eine Sicherungskopie der neuen geänderten Dateien (angezeigt mit
git status
) erstellen und a ausführengit reset --hard
. Dadurch konnte ich mich mit dem Remote-Server neu ausrichten. Hinzufügen neuer geänderter Dateien und AusführenHat den Trick gemacht. Ich hoffe, dies hilft jemandem als "letzte Chance" -Lösung.
quelle
Im Moment sieht es so aus, als ob Sie sich im Entwicklungszweig befinden. Haben Sie einen Entwicklungszweig für Ihre Herkunft? Wenn nicht, versuchen Sie es
git push origin develop
.git push
wird funktionieren, sobald es über einen Entwicklungszweig auf Ihrer Herkunft weiß.Als weitere Lektüre würde ich mir die git-push-Manpages ansehen , insbesondere den Beispielabschnitt.
quelle
Um genau zu sein, wenn Sie etwas zum Master zusammenführen möchten, können Sie die folgenden Schritte ausführen.
Es ist eine gängige Praxis beim Erstellen eines Pull-Anforderungsmodells für einen neuen lokalen Zweig, und dieser Zweig wird dann an einen Remote-Zweig gesendet. Dazu müssen Sie angeben, wohin Sie Ihre Änderungen per Fernzugriff übertragen möchten. Sie können dies tun, indem Sie zum Zeitpunkt des Pushs die Fernbedienung erwähnen.
Wenn Sie einen anderen Zweig als Ihren lokalen Zweigstellennamen erstellen möchten, können Sie dies mit dem folgenden Befehl tun.
quelle
Vielen Dank an Sam Stokes. Nach seiner Antwort können Sie das Problem auf unterschiedliche Weise lösen (ich habe diesen Weg verwendet). Nach dem Aktualisieren Ihres Entwicklungsverzeichnisses sollten Sie es neu initialisieren
Anschließend können Sie Updates festschreiben und an den Master senden
quelle
git init
und öffnen Sie eine neue Befehlsregisterkarte.git push origin branch_name
Das ist mir passiert, als ich
^C
mitten in einemgit push
GitHub war. GitHub zeigte jedoch nicht, dass die Änderungen vorgenommen wurden.Um dies zu beheben, habe ich eine Änderung an meinem Arbeitsbaum vorgenommen, mich verpflichtet und dann erneut gepusht. Es hat einwandfrei funktioniert.
quelle
Das ist mir passiert. Ich habe die Änderungen einfach erneut festgeschrieben, und dann wurde sie vorangetrieben.
quelle
Ich habe viele Methoden ausprobiert, einschließlich der hier definierten. Was ich habe ist,
Stellen Sie sicher, dass der Name des Repositorys gültig ist. Der beste Weg ist, den Link von der Repository-Site zu kopieren und in Git Bash einzufügen.
Stellen Sie sicher, dass Sie die ausgewählten Dateien festgeschrieben haben.
Wenn beide Schritte nicht funktionieren, versuchen Sie es
git push -u -f origin master
quelle
Stattdessen können Sie Folgendes versuchen. Du musst nicht gehen
master
; Sie können die Änderungen direkt aus Ihrem Zweig selbst erzwingen.Wie oben erläutert, ändern Sie beim Rebase den Verlauf Ihres Zweigs. Wenn Sie versuchen,
git push
nach einer Rebase eine Normalisierung durchzuführen, lehnt Git dies ab, da es keinen direkten Pfad vom Commit auf dem Server zum Commit in Ihrem Zweig gibt. Stattdessen müssen Sie das Flag-f
oder--force
verwenden, um Git mitzuteilen, dass Sie wirklich wissen, was Sie tun. Es wird dringend empfohlen, diepush.default
Konfigurationseinstellung auf einfach zu setzen, was in Git 2.0 die Standardeinstellung ist. Führen Sie Folgendes aus, um sicherzustellen, dass Ihre Konfiguration korrekt ist:Sobald es richtig ist, können Sie einfach ausführen:
Und überprüfen Sie Ihre Pull-Anfrage. Es sollte aktualisiert werden!
Weitere Informationen finden Sie unten unter So erstellen Sie eine Pull-Anforderung neu .
quelle
Stellen Sie außerdem sicher, dass Sie zum richtigen Zweig wechseln.
quelle
Dies passierte mir, als ich versuchte, von einem neuen Zweig zu pushen, und ich benutzte
git push origin master
stattdessen. Sie sollten entweder:git push origin your_new_branch
Wenn Sie möchten, dass dieser Zweig auch im Remote-Repo auftritt.git merge origin master
.quelle
quelle