2014-08-27 83 views
0

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

回答

1

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

如果你不这样做,混帐会记得,你还有其他的文件到以前的承诺,将刚刚添加的差异,不删除不存在新提交的文件。

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

这样混帐会:

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

你必须做同样的你在“文件系统级”上手动执行的操作,并在“git级”上执行。

让我知道如果这就是你想要做的! 如果这工作!

0

看起来你想看到一个提交而不会暴露它的完整历史。我认为最好的办法是使用孤立分支。

你做 -

git --orphan <new_branch> 

这将切换到一个新的分支,它是干净的,那么你就可以检出到你想要的承诺,然后这将是父承诺,而连接到它的任何历史。

+0

这样,他不会得到他想要的每一个提交的新分支?或者这样,* OP的目录副本*的所有提交仍将驻留在同一分支中? – Kamafeather 2014-08-27 13:10:35