2016-11-13 3 views
0

Ok, ich bin neu in Git und ich habe Isue, die nicht selbst lösen kann, auch nach ein paar Stunden hier und da auf Themen mit ähnlicher Frage gelesen. Ich werde versuchen, es im Detail zu beschreiben:Git - Push zu Remote-Repository fehlgeschlagen

Name meiner GitHub Repo ist rep_1

In rep_1 gibt es 5 Ordner (1,2, ..., 5), und es gibt index.html in jeder. Ich machte einen neuen Ordner 'Arbeit' und ich git clone <url> mein gegabeltes Repo. In Ordner 1/index.html habe ich git init und git add . und git commit -m verwendet, um einige Änderungen vorzunehmen.

Dann habe ich git remote add 1 https://github.com/username/rep1 danach,

git push 1

und ich habe:

fatal: Der Stromzweig Master kein vorgeschaltetes Zweig hat. Zu schieben den aktuellen Zweig und stellen Sie die Fernbedienung als Upstream, Verwendung git push --set-Upstream-1 Master

ich auch verwendet, aber es half nicht. Habe dieses mal:

fatal: Der aktuelle Filialmaster hat keinen Upstream-Zweig. Um den aktuellen Zweig zu schieben und so stromauf der entfernte einzustellen, verwenden git push --set-Upstream Arbeit Master

dind't auch funktionieren.

Repository nicht

gefunden

Ich habe auch versucht git push -u rep_1 und bekam die gleichen Fehler. Ich habe keine Ideen, was ich tun soll.

+0

Vielleicht ist 1 nicht wirklich ein guter Name für eine Repository-Referenz? Außerdem scheint es, dass du Dinge vermischst. 1 ist ein Ordner, eine Repo-Referenz oder eine Verzweigung? Sie müssen remote myRepo hinzufügen ...; git push myRepo master'. –

+1

Haben Sie versucht, den Ordner .git zu löschen und neu zu beginnen? Stellen Sie außerdem sicher, dass Sie zum richtigen Zweig mit dem Git-Checkout wechseln. Branch_name – ytpillai

+0

Ich denke, Ihre Schritte sind ziemlich falsch und durcheinander geraten, wie Ondra vorgeschlagen hat. Können Sie sagen, was Ihre eigentliche Anforderung ist? Was möchten Sie in Ihrer Frage tun und wir können vorschlagen, welche Schritte zu befolgen sind. –

Antwort

0

In rep_1 gibt es 5 Ordner (1,2, ..., 5), und es gibt index.html in jedem. Ich habe einen neuen Ordner 'Arbeit' gemacht und ich habe meinen gegabelten Repo geklont. In Ordner 1/index.html habe ich git init und git add benutzt. und git commit -m, um einige Änderungen vorzunehmen.

Hier sagen Sie, dass Sie ein Repo geklont haben. Später initialisieren Sie ein neues Repository mit git init. Wenn Sie das tun, ist dieses Repository völlig anders als das Repo, das Sie geklont haben. Daher können Sie nicht zum vorhandenen Repository wechseln (ich gehe davon aus, dass die hinzugefügte Fernbedienung für das Repository ist, aus dem Sie geklont haben.)

Haben Sie gesagt, dass wenn Sie wissen, was Ihre Anforderung ist kann vorschlagen, welche Schritte zu befolgen sind.

0

Im Grunde wird git Repository-Informationen (in der Regel .git) vom aktuellen Ordner zum übergeordneten Ordner durchsuchen, bis ein .git gefunden wurde.

Für Ihre Frage wird das lokale Repository verwendet, das Sie in Ordner 1 erstellt haben. Sie können also nicht durch diese lokalen Informationen auf die Fernbedienung zugreifen.

Es wird nicht empfohlen, ein neues Repository im Arbeitsverzeichnis des anderen Repositorys zu erstellen.

0

Sie können den gleichen Repo nicht im Unterordner klonen. Der Grund, warum Sie nicht wie unten drücken können:

  1. Sie geklont Sie rep_1 in Ordner /work, so dass Ihre lokale Repo im Verzeichnis /work/rep_1
  2. In Ordner /work/rep_1/1 Sie git init verwendet, um einen neuen lokalen Repo zu erstellen und machte einige Änderungen darin
  3. Und dann fügen Sie das Fernrepo rep_1 hinzu und möchten Sachen in Ordner /work/rep_1/1 schieben. Aber denken Sie daran, /work/rep_1/1 ist der Unterordner Ihres lokalen Repos in Schritt1, Sie haben auch Ordner/2,/3,/4,/5.
  4. Es ist eine interessante Sache, dass, wenn Sie git pull --allow-unrelated-histories verwenden, und gehen Sie dann in das Verzeichnis /work/rep_1 Verwendung git status, finden Sie, was Sie in /work/rep_1/1 geändert alle hier zeigen
  5. Sie git push 1 So verwenden, ist es wirklich den Status in /work/rep_1 prüft und vergleichen Sie die SHA-1 von HEAD mit dem Remote-
  6. Wenn Sie Änderungen drücken, können Sie es tun in /work/rep_1 direkt
0

es gibt viele sugestions ist aber Ill versuchen zu erklären, was ich zu tun habe. Mein geklonter Ordner rep_1 enthält .git, also gibt es bereits ein Repository mit vielen Einträgen, wie ich sehen kann, wenn ich git log benutze. Ich muss Änderungen in index.html Dateien vornehmen, die sich in den Ordnern 1-5 befinden. Jede Änderung muss festgelegt werden. Dann muss ich es mit allen Änderungen, die ich getan habe, ins Remote-Repository schieben.

Meine Fragen:

  1. Kann es in nur einem Repository, das bereits vorhanden ist geschehen?
  2. Kann ich .git Datei löschen und neue mit klarem Protokoll erstellen? Ich brauche keine alten Änderungen.
  3. Ist es nicht möglich, git repository in jedem Ordner 1-5 zu erstellen und dann an meinen GitHub zu senden?
  4. Kann ich Änderungen vornehmen, sagen wir zwei Dateien gleichzeitig und commit es mit einem Befehl in GitBash?
+0

für Ihre Fragen: 1. \t Nein, wenn Sie die 5 Ordner separat steuern möchten, müssen Sie sie in verschiedenen Ordnern ablegen; 2. \t Nein, Sie können keine Protokolle löschen, selbst wenn Sie die '.git' Datei löschen. Dies ist die GIT-Funktion, bei der alle Historien verfolgt wurden, sodass die Logs nicht gesäubert werden können. 3.\t Ja, Sie können git init verwenden, um einen neuen Repo in einem anderen Pfad zu erstellen und einen der Ordner zu kopieren; 4. \t Ja, in einem Repository, egal was Sie in Unterordnern geändert haben, kann es gleichzeitig festgeschrieben werden. –

0

Sie müssen nur den Repository-Ordner „rep_1“ eingeben Sie geklont haben und dann laufen

git add * 
git commit -m "x" 
git push 

alle Änderungen schieben Sie in den 5 Ordner Remote-Repository hergestellt.