2016-08-18 54 views
0

我向分段區域添加了文件更改,之後進行了一些其他更改並希望它們未被跟蹤,直到第一次更改未提交(請參閱下面的代碼)。Git提交了一些分階段的更改,忽略了未分配的

如果我有一個文件,可以通過簡單的git commit來完成。但假設我有幾個不同的文件上演,其中一些不上演。當我指向文件列表git commit <files>時,Git提交這些文件的當前內容,即未跟蹤的更改,忽略分段的更改。 但我想提交分階段的更改,忽略某些特定文件列表的未跟蹤。怎麼做?

(use "git push" to publish your local commits) 
Changes to be committed: 
    (use "git reset HEAD <file>..." to unstage) 

    modified: f1 

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

回答

0

我認爲這可能是你最好的選擇:

git commit --interactive f1 f2 

這應該讓你選擇哪個帥哥從文件列表提交,但你必須要經過每一大塊單獨和選擇是否將其包含在提交中。使用諸如emacs的magit插件之類的東西會使這更容易。

0

我要提交暫存的變更的文件

不可能git commit的一些具體名單忽略未跟蹤。如果您提交索引,則提交索引。

我看到你的方式。或者你找不到你不想提交的部分。既然你問你的問題,我認爲這是不可能的(太多的變化)?

第二個變化是:複製(重要的:不克隆)您的本地存儲庫。 在副本中,從索引中刪除不需要的部分。提交併推送(如果你還沒有遠程的話,那麼git add remote origin original_repos)。在您的原始存儲庫中,執行git stash來清理您的工作目錄,然後取消更改,然後git stash pop

(你可以嘗試做一個git pull沒有藏匿,但是我想git會告訴你,那會揍你的本地修改的時候了)運氣好的話,你現在是在業務 - 也許你有做衝突解決,但它應該是直截了當的。

當然,在做完所有這些之前做個備份。