Ich habe Dateien in meiner Anwendung aktualisiert, geändert und entfernt und bin jetzt bereit, sie zu übernehmen. Hier ist der Stand:
C:\G\ab\WebAdminApp>git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: WebAdminApp.csproj
modified: WebAdminApp.csproj.user
modified: app/admin/controllers/ContentController.ts
deleted: app/admin/interfaces/IEnumService.ts
modified: app/admin/interfaces/IHomeController.d.ts
modified: lib/pagedown/Markdown.Sanitizer.ts
deleted: lib/typings/global.ts
modified: package.json
modified: ../abilitest-admin.v12.suo
Untracked files:
(use "git add <file>..." to include in what will be committed)
app/interfaces/IEnumService.d.ts
app/interfaces/IUtilityService.d.ts
../npm-debug.log
keine Änderungen zum Commit hinzugefügt (verwenden Sie “git add” und/oder “git commit -a”)
Wenn ich eintrete:
git add .
Es gibt mir eine Nachricht, die besagt:
C:\G\ab\WebAdminApp>git add .
warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal',
whose behaviour will change in Git 2.0 with respect to paths you removed.
Paths like 'WebAdminApp/app/admin/interfaces/IEnumService.ts' that are
removed from your working tree are ignored with this version of Git.
* 'git add --ignore-removal <pathspec>', which is the current default,
ignores paths you removed from your working tree.
* 'git add --all <pathspec>' will let you also record the removals.
Ich möchte, dass alles, was ich auf meinem lokalen PC getan habe, festgeschrieben wird, und dann möchte ich, dass der Master auf GITHUB dies widerspiegelt.
Kann jemand erklären, was es bedeutet und was muss ich jetzt eingeben, damit alle änderungen mit einem git commit festgeschrieben werden können? Sorry ist mir nicht klar. Ist das Verzeichnis oder ?
Diese Antwort war ganz abgeleitet von Git-Pfadspezifikationen und wie man sie verwendet. Ich habe nicht alles kopiert, also schauen Sie sich den Link an, um tiefer zu graben
Die pathspec
ist der Mechanismus, den Git verwendet, um den Umfang eines Git-Befehls auf eine Teilmenge des Repositorys zu beschränken. Wenn Sie viel Git verwendet haben, haben Sie wahrscheinlich a verwendet pathspec
ob du es weißt oder nicht. Zum Beispiel im Befehl git add README.md
der pathspec
ist README.md
. Es ist jedoch zu viel mehr Nuancen und Flexibilität fähig.
Also, warum sollten Sie lernen pathspec
S? Da es Teil vieler Befehle ist, werden diese Befehle mit einem Verständnis von viel mächtiger pathspec
S. Mit git add
, können Sie nur die Dateien innerhalb eines einzelnen Verzeichnisses hinzufügen. Mit git diff
können Sie nur die Änderungen untersuchen, die an Dateinamen mit der Erweiterung vorgenommen wurden .scss
. Sie können alle Dateien außer denen in der grep git grep /dist
Verzeichnis.
Datei oder Verzeichnis
git add . # add CWD (current working directory)
git add .. # add parent directory and its subdirectories
git add src/ # add src/ directory
git add README # add only README directory
Beachten Sie auch, dass die git add
Befehl nimmt [<pathspec>...]
. Die ...
bedeutet Möglichkeit des mehrfachen Auftretens. Sie können also Folgendes tun:
git add /content /images
und das würde alle Änderungen unter beiden Verzeichnissen.
wenn du es jemals tust ls -a
listet es alle Dateien und ‘Verzeichniseinträge’ auf, die es enthält .
und ..
für mehr siehe Hier
Platzhalter
git log '*.js' # logs all .js files in CWD and subdirectories
git log '.*' # logs all 'hidden' files and directories in CWD
git log '*/.*' # logs all 'hidden' files and directories in subdirectories
oben
Die top
Die Signatur weist Git an, das Muster aus dem Stamm des Git-Repositorys und nicht aus dem aktuellen Arbeitsverzeichnis abzugleichen. Sie können auch die Kurzform verwenden :/
eher, als :(top)
.
git ls-files ':(top)*.js'
git ls-files ':/*.js' # shorthand
icase
Die icase
Die Signatur weist Git an, sich beim Abgleich nicht um Groß- und Kleinschreibung zu kümmern, z. B. könnte dies beim Abgleich nützlich sein jpg
Dateien, die manchmal die Erweiterung in Großbuchstaben verwenden JPG
.
git ls-files ':(icase)*.jpg'
ausschließen
Schließlich gibt es noch die magische Signatur „ausschließen“ (Kurzform von :!
oder :^
). zB können Sie alle Ihre durchsuchen .js
Dateien unter Ausschluss der .spec.js
Testdateien.
git grep 'foo' -- '*.js' ':(exclude)*.spec.js' # search .js files excluding .spec.js
git grep 'foo' -- '*.js' ':!*.spec.js' . # shorthand for the same
Von dem Git-Glossar:
[A pathspec is a pattern] Wird verwendet, um Pfade in Git-Befehlen zu begrenzen.
Pfadangaben werden auf der Befehlszeile von „git ls-files“, „git ls-tree“, „git add“, „git grep“, „git diff“, „git checkout“ und vielen anderen Befehlen verwendet, um den Umfang einzuschränken von Operationen zu einer Teilmenge des Baums oder Arbeitsbaums.
Als Beispiel der Befehl git add :/**.ts
fügt dem Index rekursiv alle Dateien hinzu, die mit enden .ts
beginnend im Stammverzeichnis des Projektarchivs (unter Berücksichtigung der verschiedenen Möglichkeiten zum Ignorieren von Dateien).
Wenn Sie möchten, dass die gelöschten Dateien auch im Repository gelöscht werden, tun Sie dies git add --all .
. Wenn Sie nicht möchten, dass sie im Repository gelöscht werden, tun Sie dies git add --ignore-removal .
.
Hast du die Nachricht gelesen?
– Twalberg
30. Dezember 2014 um 20:38 Uhr
Ja, ich habe die Nachricht gelesen. Es schlägt die Verwendung von “gitadd -all” vor. Hast du meine Frage gelesen, wo ich frage. Was ist . Ich bin sicher, das ist jemandem, der sich mit Git auskennt, sehr klar, aber glauben Sie als neuer Benutzer, dass wir alle wissen, was bedeutet?
– Samantha JT Star
31. Dezember 2014 um 3:18 Uhr
@SamanthaJ Eine „Pfadspezifikation“ bezieht sich darauf, wie Sie Pfade zu Dingen in Git angeben, einschließlich der Verwendung von Platzhaltern. Diese werden in der verwendet
.gitignore
Datei, sondern auch auf der Kommandozeile (git add *.c
).– jub0bs
31. Dezember 2014 um 3:27 Uhr
@jubobs – Danke. In diesem Fall, in dem ich alles einschließen möchte, sollte ich einfach git add -all ausführen . oder git add -all /?
– Samantha JT Star
31. Dezember 2014 um 5:09 Uhr