2012-12-09 8 views
5

Ich habe git commit -v versuchtWie werden Änderungen an einer Datei vor dem Festschreiben angezeigt?

[email protected]:~/agile$ git commit -v 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: .htaccess 
# 
no changes added to commit (use "git add" and/or "git commit -a") 
[email protected]:~/agile$ 

Aber es zeigt mir nur, dass .htaccess hat sich verändert, aber nicht das, was sich geändert hat. Wie erreiche ich das?

Update: In Aptana Studio ist es möglich, die Änderungen sehen vor Sie etwas begehen. Also zurück zu meiner Frage, es muss eine Möglichkeit geben, den Unterschied zum ursprünglichen Zustand zu sehen, bevor Sie tatsächlich begehen. Vielleicht gibt es dafür einen anderen Befehl.

Antwort

10

Stellen Sie sicher, dass Sie einige Änderungen vorgenommen haben. Ansonsten zeigt git commit -v Ihnen einen Block ähnlich dem, den Sie gepostet haben, aber nichts tun. Sie können Änderungen manuell mit git add durchführen, oder wenn die Dateien bereits versioniert sind, können Sie git commit -a -v verwenden, um die Änderungen zu staging und zu übernehmen.

Zum Beispiel:

$ echo "more foo" >> foo.txt 
$ git commit -v 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: foo.txt 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

die Änderung Staging zeigt die diff mit git commit -v:

:: git add foo.txt 
:: GIT_EDITOR=cat git commit -v 

# Please enter the commit message for your changes. Lines starting 
# with '#' will be ignored, and an empty message aborts the commit. 
# On branch master 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# modified: foo.txt 
# 
diff --git a/foo.txt b/foo.txt 
index 257cc56..a521556 100644 
--- a/foo.txt 
+++ b/foo.txt 
@@ -1 +1,2 @@ 
foo 
+more foo 
Aborting commit due to empty commit message. 

Wenn Sie nur die diff ohne sie wollen, um zu sehen, verwenden Sie git diff unstaged Änderungen zu sehen, git diff --cached zu Sehen Sie sich Änderungen an, die für die Festschreibung bereitgestellt wurden, oder , um sowohl gestaffelte als auch nicht geänderte Änderungen in Ihrem Arbeitsbaum anzuzeigen.

UPDATE: Angesichts Ihrer Bearbeitung, was Sie wirklich wollen, sind die git diff Derivate oben. Ich bin mir nicht sicher, wie Aptana Studio funktioniert. Es folgt möglicherweise nicht dem typischen Befehlszeilen-Git-Fluss. In der Befehlszeile würden Sie Ihre Änderungen übernehmen und dann festschreiben. Und die obigen git diff Befehle sind, was Sie verwenden würden, um diese Änderungen zu untersuchen. Ich alias sie typischerweise als git unstaged, git staged und git both durch, diese zu meinen ~/.gitconfig:

[alias] 
    # show difference between working tree and the index 
    unstaged = diff 

    # show difference between the HEAD and the index 
    staged = diff --cached 

    # show staged and unstaged changes (what would be committed with "git commit -a") 
    both = diff HEAD 
+0

+1 Ja. 'git diff .htaccess' macht, was ich erreichen wollte. Vielen Dank :) – Houman

6

Um alle diff in getrackten Dateien zu sehen, aber nicht inszeniert:

git diff 

oder

git diff path/to/a/given/file 

, um das diff nur für eine Datei zu sehen. Sie können auch die diff in einem bestimmten Unterverzeichnis des Projekts finden Sie unter:

git diff path/to/a/dir/ 

Wenn Sie bereits die Änderungen mit git add Szene gesetzt haben, können Sie sehen, welche Patch Sie mit

git diff --staged 

inszeniert haben Sie kann auch einen Pfad mit --staged angeben.

Verwandte Themen