2012-12-09 17 views
5

BenBir dosyada değişiklik yapılmadan önce nasıl değişiklik yapılır?

[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$ 

git commit -v denedi Ama sadece .htaccess değiştiğini fark ettim gösteriyor, ama değişti gibi değil. Bunu nasıl başarabilirim?

Güncelleme: Herhangi bir şey işlemek önce değişiklikleri görmek mümkündür Aptana Studio'da . Yani benim soruma geri dönersek, gerçekte, gerçekten de, gerçek durumdan farkı görmenin bir yolu olmalı. Belki bunun için farklı bir komut vardır.

cevap

10

Bazı değişiklikler yaptığınızdan emin olun. Aksi halde, git commit -v size gönderdiğinizlere benzer bir blok gösterecektir, ancak hiçbir şey yapmazsınız. Değişiklikleri el ile git add olarak ayarlayabilir veya dosyalar önceden sürümlenmişse, değişiklikleri düzenlemek ve işlemek için git commit -a -v kullanabilirsiniz. Örneğin

: değişikliğini Sahneleme

$ 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") 

git commit -v ile diff gösterir:

:: 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. 

sadece, işlemekle olmadan diff görmek, git diff --cached unstaged değişiklikleri görmek için git diff kullanmak istiyorsanız işleyen ağacınızda hem aşamalı hem de taramalı değişiklikleri görmek için taahhütte bekletilen değişikliklere bakın veya git diff HEAD.

UPDATE: düzenlemenizde, gerçekten istediğiniz şey git diff türevleridir. Aptana Studio'nun nasıl çalıştığından emin değilim. Tipik komut satırı git akışını takip etmeyebilir. Komut satırında, değişikliklerinizi gerçekleştirir ve ardından taahhütte bulunursunuz. Ve yukarıdaki git diff komutları, bu değişiklikleri incelemek için kullandığınız şeydir. Ben genellikle git unstaged, git staged ve git both olarak benim ~/.gitconfig bu ekleyerek onları diğer ad:

[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 Evet. 'git diff .htaccess' başarmak istediğimi yapar. Teşekkür ederim :) – Houman

6

sahnelenen değil izlenen dosyalarındaki tüm diff bakın ama için:

git diff 

veya

git diff path/to/a/given/file 
Yalnızca bir dosya için farkı görmek için

. Ayrıca projenin Belirli bir alt dizinde diff görebilirsiniz: Zaten git add değişiklikleri sahnelenen varsa

git diff path/to/a/dir/ 

, size

git diff --staged 

ile sahnelenen ne yama görebilirsiniz Sen --staged ile bir yol da belirtebilir.

İlgili konular