folderA
版本控制下的项目。 folderA
,因此我将其从.gitignore
中移除并将其添加到源代码管理中。 folderA
之前签出任何提交时,该文件夹将被删除。 这种方式很有意义,因为据我所知,Git已经记录了从不存在中添加folderA
并且之前忽略了它,因此它只是简单地重放了#39;及时添加,即删除文件夹。
我的问题是:是否有可能从上面的步骤1(或者甚至2)开始,我将folderA
添加到源代码控制中,当我检出任何先前的提交(仍然被忽略)时,不要删除它? (如 Git在添加之前没有假设文件夹(非)存在)。
答案 0 :(得分:0)
只要您对第一次提交文件夹的今天版本感到高兴,就可以这样做。
git status # make sure you have no local changes
git tag pre-rebase # just in case this all goes wrong
git rebase -i HEAD~20 # or however many commits you have to go back to get to the one where you first ignored folderA.
# in the editor that comes up
# (if you don't know how to use vi, switch your default editor to nano
# before you start this process)
# find the commit where you added the git ignore and replace pick at the start of the line to `e` for edit
# save the file and wait for the rebase to start
# when it stops, open `git gui &` click the amend radio button
# (if you don't use git gui, do it with whichever tool you use)
# remove the entry from .gitignore
# stage the changes (the change to gitignore and everythign in folder a)
# press the commit button
git rebase --continue
如果你很幸运,那么rebase将会完成,一切都将在你当前的分支中成为你想要的。如果不是,您可以返回pre-rebase
标记然后重试。如果您不熟悉说明中的任何命令,最好在尝试之前进行查找。