Git 这是忽略文件的正确方法吗?

Git 这是忽略文件的正确方法吗?,git,Git,我正在做一个Iinteractiverebase并试图从我的历史记录中删除所有bin和obj文件夹。我的回购协议的文件夹结构如下 MyRepo MyClass . . bin obj . MyTestClass . . bin obj . . . . 我修改了我的第一次提交,并添加了一个带有内容的

我正在做一个
I
interactive
rebase
并试图从我的历史记录中删除所有
bin
obj
文件夹。我的回购协议的文件夹结构如下

MyRepo
    MyClass
        .
        .
        bin
        obj
        .
    MyTestClass
        .
        .
        bin
        obj
        .
    .
    .
    .
我修改了我的第一次提交,并添加了一个带有内容的
.gitignore

/MyClass/bin
/MyClass/obj
/MyTestClass/bin
/MyTestClass/obj
并将其放入MyRepo中


但是,当我去提交时,我仍然看到我不想要的文件在那里(
.exe
.pbd
,等等)。

忽略文件的最好方法是使用
第二个是要理解,您放入其中的所有模式都将忽略未提交(未跟踪)的文件。一旦出错,git rm--cached就是您的朋友

忽略文件的最佳方法是使用
第二个是要理解,您放入其中的所有模式都将忽略未提交(未跟踪)的文件。一旦出错,git rm--cached就是您的朋友

那么,您去提交文件,文件首先被添加到哪里,然后仅使用该更改进行修改?好。。。。您还必须对文件进行rm(在相同的修改操作上),以便它们能够继续前进。使用cherry pick(…或甚至使用filter branch)从原始分支复制以下所有修订,然后就好像这些文件从未在该分支上存在一样。@Edmundo您能提供一系列用于执行此操作的命令的概要吗?我想象我从
git-rebase-I--root
开始,然后将第一次提交改为
edit
,而不是
pick
,然后一旦重新启动,我就执行
git-commit--ammend
,添加
.gitignore
文件,对
gitignore
下的文件运行
git-rm
,然后提交--aaahh。。。我跟不上。这是我要做的。首先,在添加文件的修订版上设置两个分支,并签出要更正内容的分支:
git branch fix start;git签出-b已更正分支
。现在,修改.gitignore文件,使其具有正确的值(如果还没有),并删除“错误”添加的文件(如果希望将它们保留在工作树上,可以
git rm--cache
)。现在
git commit--amend--no edit
这样您就得到了一个“干净的修正版”。下一条消息的更多内容现在复制您在原始分支上的所有更改:
git cherry pick fix start..original branch
。现在你的分支应该是干净的,你可以让原来的分支指向当前的修订版。那么,你去提交文件最初添加的地方,然后只修改了那个地方?好。。。。您还必须对文件进行rm(在相同的修改操作上),以便它们能够继续前进。使用cherry pick(…或甚至使用filter branch)从原始分支复制以下所有修订,然后就好像这些文件从未在该分支上存在一样。@Edmundo您能提供一系列用于执行此操作的命令的概要吗?我想象我从
git-rebase-I--root
开始,然后将第一次提交改为
edit
,而不是
pick
,然后一旦重新启动,我就执行
git-commit--ammend
,添加
.gitignore
文件,对
gitignore
下的文件运行
git-rm
,然后提交--aaahh。。。我跟不上。这是我要做的。首先,在添加文件的修订版上设置两个分支,并签出要更正内容的分支:
git branch fix start;git签出-b已更正分支
。现在,修改.gitignore文件,使其具有正确的值(如果还没有),并删除“错误”添加的文件(如果希望将它们保留在工作树上,可以
git rm--cache
)。现在
git commit--amend--no edit
这样您就得到了一个“干净的修正版”。下一条消息的更多内容现在复制您在原始分支上的所有更改:
git cherry pick fix start..original branch
。现在,您的分支应该是干净的,您可以使原始分支指向当前版本。