2013-12-22 32 views
0

我可以丢弃一个目录的本地更改吗?Git:扔掉一个目录的本地更改?

我改变了一组文件,大部分我想提交,但有一个目录我不想提交我所做的任何更改。我如何在保持其他人完好的同时抛弃这些变化?

谢谢!

+1

与论坛网站不同,我们做不使用“谢谢”或“任何帮助表示赞赏”,或在[so]上签名。请参阅“[应该'嗨','谢谢',标语和致敬从帖子中删除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts) –

+0

什么问题?只是不要从目录中分级文件。 –

回答

0

当您进行提交时,您首先必须选择要添加到提交的文件。通过做

git commit -a 

您将所有文件添加到提交。取而代之的是,你可以先选择哪个文件添加到提交使用

git add [file/directory] 

您可以通过这种方式,指定哪些文件添加到提交,一个个要么,或者添加目录中的所有在一起。你可以git add你想要的所有目录。您可以随时使用

git status 

哪些文件包含在提交中,哪些不包含。当你添加你想要的文件并且留下剩下的文件时,你做一个git commit然后你可以对你想要恢复的文件做一个git checkout,所有你可以使用git stash将它们全部存储在存储器中。

编辑:另一方面,有多个集成了可视化git工具的IDE,您可以轻松使用它来选择要提交的文件。

0

您可以先添加所有更改,然后执行git reset directory/,然后执行git commit。这将提交所有其他的阶段,但不包括提交中的目录。

如果您需要摆脱该目录中的本地修改,您可以在提交后运行git reset --hard

0

您可以选择性地选择你想提交的东西:

git add -p #(or git add --patch) 

从git的手册页

-p, --patch 
     Interactively choose hunks of patch between the index and the work tree and add them to the 
     index. This gives the user a chance to review the difference before adding modified contents 
     to the index. 

     This effectively runs add --interactive, but bypasses the initial command menu and directly 
     jumps to the patch subcommand. See "Interactive mode" for details. 

说明如果你不希望永远承诺从该文件夹东西,你可以添加它到.gitignore文件和git将永久忽略该文件夹的任何变化,查看示例gitignore文件here