git checkout仅在具体提交期间提交的那些文件

时间:2014-08-27 10:25:26

标签: git content-management-system git-commit git-checkout

我在我的仓库中有一个与头部分离的分支,我在其中添加了相同名称的文件夹,其中包含不同的文件。每次当我想要提交某些东西时,我手动删除我的存储库中的文件夹,并添加具有相同名称但其中包含不同内容的新文件夹,我稍后提交并推送。问题是,当我检查我的一个过去的提交时,我看到该文件夹​​,它包含来自所选提交和过去提交的内容,但我希望仅从该具体提交中看到内容。所以,我想问一下是否有可能这样做,我该如何实现呢?也许我应该使用某种git命令从我的仓库中删除文件? (但如果真的我想确保上次提交的文件不会丢失)。

2 个答案:

答案 0 :(得分:1)

每次提交之前,您还应该从跟踪文件中删除 git 跟踪的目录中的所有文件,执行git rm your_directory

如果你不这样做, git 会记住你在之前的提交中有其他文件,并且只是添加差异,而不删除那些文件没有出现在新提交中。

所以你需要告诉 git 你要删除文件,然后在新目录的副本之后再添加git add your_directory的新文件。

这样 git 将:

  • 明白它必须删除旧文件/目录
  • 添加新文件/目录

您只需要在“文件系统级别”上手动执行相同操作,并在“git level”执行此操作。

如果那是你想做的事,请告诉我! 如果那样有效!

答案 1 :(得分:0)

您似乎希望在不暴露其完整历史的情况下查看提交。我认为最好的方法是使用孤儿分支。

你做 -

git --orphan <new_branch>

这将切换到一个干净的新分支,然后您可以签出到您想要的提交,然后该提交将是父提交,而不附加任何历史记录。