2012-01-24 61 views
1

我確定這個問題已經回答了很多次,但是我找不到答案。事情是這樣的。 我必須修改幾個文件並將這些更改提交到git存儲庫。但是有時候,我會在文件中添加一些意想不到的變化(添加一個空格,剪下一大塊代碼,以便意識到我處於錯誤的文件中,因此我再次在前一個位置粘貼該塊並保存該文件),以及每次git檢測到該行爲都是文件更改時,請讓我提交這些更改。 但我不能提交這些更改(我必須證明每一個提交,我不能輸入「添加空格」左右)。 我如何告訴git忽略這些變化?我不想將文件恢復到之前的狀態,我想要說的是git「這個文件是好的,不要提交虛假的更改,忽略它們」如何在git中丟棄文件更改

+0

對不起,沒有辦法告訴git忽略特定的更改。你可以擺脫這些變化(如果他們真的只是空白的東西,那麼這應該不會造成問題)。使用'git reset --hard HEAD'扔掉*所有*改變,或者'git checkout -p'交互式地選擇拋出哪些變化。 –

+0

這可能會有所幫助:http://book.git-scm.com/4_undoing_in_git_-_reset,_checkout_and_revert.html – selbie

+0

在升級它們之前,你最好先運行''git diff --check ''或者在你啓動它們之後使用'git diff --cached --check''。它報告空白錯誤。在''git help diff''中查找''--check''命令行選項。 – holygeek

回答

0

只要你還沒有推動你的回購的某處,加上您更改索引,然後修改你上次提交:

git add file_with_change 
git commit --amend 
0

我做的是,我先走一步,做出承諾,如adding blank spaceformatting等通常與一些識別字狀MINOR

git commit -m "MINOR formatting" 

然後我繼續工作,隨時做出提交,然後當我準備推送時,我執行git rebase -i並且僅僅壓制MINORMINORMINOR或類似的消息有助於快速在交互式重新命名列表中選擇這些提交)承諾提交之前的提交。或者,如果有意義的話,將它們全部集中在一塊,然後推送提交。

但是,爲了回答你的問題相關的,以「拋棄」在一個文件中的變化,所以git會追蹤它,但還是忽略更改的方式是:

git update-index --assume-unchanged file 

,但我不推薦這樣做。