Datei mit Git umbenennen

78

Ich bin neu bei Git / Github und brauche Hilfe. Ich möchte die Datei von README in README.md umbenennen. Ich habe nur ein Repo namens "change-z-index".

1) Ich öffne und logge mich so ein:

ssh -T [email protected]

Und ich gebe meine Passphrase ein.

2) Ich versuche die Datei folgendermaßen umzubenennen:

git mv README README.md
git commit -m "renamed"
git push origin master

Es gibt mir einen Fehler, der eine schlechte Quelle sagt .

Ich denke, ich muss zuerst mein Repo auswählen ... es heißt "change-z-index". Ich habe das Handbuch oft gelesen, kann aber immer noch nicht verstehen, wie es geht.

Badr Hari
quelle
Ist READMEdefinitiv schon unter der Kontrolle von git? Der Fehler, den Sie erhalten, deutet darauf hin, dass er entweder READMEnicht vorhanden ist oder nicht im git-Index enthalten ist.
CB Bailey
@ Charles Bailey Ich kann Readme-Datei in meinem Repo sehen, wenn ich die Webseite meines Github besuche
Badr Hari
Ich bin mit den Details von Github nicht vertraut, aber wo versuchen Sie, die Datei auf Ihrem lokalen Klon oder auf dem Github-Server selbst umzubenennen?
CB Bailey
@ Charles Bailey auf dem Github-Server selbst
Badr Hari
@BadrHari: OK, mir war nicht bewusst, dass die Github-Server ein nicht nacktes Repository mit einem funktionierenden Baum gehostet haben. Was passiert, wenn Sie git statusauf dem Server ausgeführt werden?
CB Bailey

Antworten:

129

Soweit ich das beurteilen kann, bietet GitHub keinen Shell-Zugriff. Ich bin gespannt, wie Sie sich überhaupt angemeldet haben.

$ ssh -T [email protected]
Hi username! You've successfully authenticated, but GitHub does not provide
shell access.

Sie müssen Ihr Repository lokal klonen, die Änderung dort vornehmen und die Änderung an GitHub übertragen.

$ git clone [email protected]:username/reponame.git
$ cd reponame
$ git mv README README.md
$ git commit -m "renamed"
$ git push origin master
Hammar
quelle
15
Hinzufügen nur wie ich noobs , dass unter Verwendung von git mvautomatisch die Datei auf Ihrem Computer umbenennt . Ich habe versucht, die Datei vor der Verwendung als anderen Namen zu speichern, git mvund bin fatal: destination existsaufgrund dieses dummen Fehlers auf den Fehler gestoßen.
MichaelChirico
41

Beachten Sie, dass Sie ab dem 15. März 2013 eine Datei direkt aus GitHub verschieben oder umbenennen können :

(Sie müssen dieses Repo nicht einmal klonen git mv xxund git pushzurück zu GitHub!)

Umbenennung

Sie können Dateien auch nur über das Feld Dateiname an völlig neue Speicherorte verschieben.
Um in einen Ordner zu navigieren, geben Sie einfach den Namen des Ordners ein, in den Sie die Datei verschieben möchten, gefolgt von /.
Der Ordner kann einer sein, der bereits Teil Ihres Repositorys ist, oder es kann sogar ein brandneuer Ordner sein, der noch nicht existiert!

ziehen um

VonC
quelle
4
Funktioniert nur für Dateien, die von GitHub bearbeitet werden können. Nicht für Dateien wie Bilddateien.
A9S6
@ A9S6 Richtig, diese Art macht Sinn, da ihr Inhalt sowieso nicht (als Text) angezeigt wird.
VonC
5
Ja, aber zumindest sollte das Umbenennen ihres Namens erlaubt sein :)
A9S6
31

Sie können eine Datei mit gitdem folgenden mvBefehl umbenennen :

$ git mv file_from file_to

Beispiel:

$ git mv helo.txt hello.txt

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   renamed:    helo.txt -> hello.txt
#

$ git commit -m "renamed helo.txt to hello.txt"
[master 14c8c4f] renamed helo.txt to hello.txt
 1 files changed, 0 insertions(+), 0 deletions(-)
 rename helo.txt => hello.txt (100%)
jaredwilli
quelle
2
Es gibt mir einen Fehler: schlechte Quelle, Quelle = README, Ziel = README.md
Badr Hari
Versuchen Sie, es im Repo von github.com oder in Ihrem lokalen Repo umzubenennen?
Jaredwilli
Wenn Sie versuchen, es auf github umzubenennen, müssen Sie es aus dem lokalen Repo $ rm file_name entfernen. Führen Sie ein Commit durch, und fügen Sie diese Datei dann unter dem Namen, in den Sie sie ändern möchten, erneut zum Repo hinzu. Die Quell- und die Zieldatei stimmen nicht überein, daher ist ein Fehler aufgetreten. Ich denke, das ist es sowieso ...
Jaredwilli
4

Ich hatte ein ähnliches Problem beim Durchlaufen eines Tutorials.

# git mv README README.markdown

fatal: schlechte Quelle, Quelle = README, Ziel = README.markdown

Ich habe den Dateityp in die Quelldatei aufgenommen:

# git mv README.rdoc README.markdown

und es hat perfekt funktioniert. Vergessen Sie nicht, die Änderungen zu übernehmen, dh:

# git commit -a -m "Improved the README"

Manchmal sind es einfache Kleinigkeiten wie diese, die uns verärgern. LOL

Chris Howard
quelle
3

Führen Sie a aus git status, um herauszufinden, ob sich Ihre Datei tatsächlich in Ihrem Index oder im Commit befindet.

Als Anfänger ist es leicht, den Index- / Staging-Bereich falsch zu verstehen.

Ich betrachte es als "Fortschritts-Pinnwand". Ich muss daher adddie Datei auf die Pinnwand legen, bevor ich kanncommit (dh eine Kopie der vollständigen Pinnwand), ich muss die Pinnwand bei Bedarf aktualisieren und ich muss auch absichtlich Dateien daraus entfernen, wenn ich damit fertig bin - Das einfache Erstellen, Bearbeiten oder Löschen einer Datei wirkt sich nicht auf die Pinnwand aus. Es ist wie "Storyboarding".

Bearbeiten: Wie andere angemerkt haben, sollten Sie die Änderungen lokal vornehmen und dann das aktualisierte Repo pushen, anstatt zu versuchen, direkt auf Github zu bearbeiten.

Philip Oakley
quelle
1

Sie haben den Status "Bad Status", weil die Zieldatei nicht gefunden werden kann oder nicht vorhanden ist. Sie rufen beispielsweise die README-Datei auf, die sich nicht im aktuellen Verzeichnis befindet.

Ryan S.
quelle
Das war in der Tat mein Problem. Ich hatte vergessen, das aktuelle Verzeichnis in die Datei zu ändern.
TheIT