每当我做的经典套路:推送操作忽略加入通过GIT中克隆预计,目录
git add -A
git commit -am "foo"
git push remote branch
Git不会上传通过git clone
命令添加的文件。
例如,我从github中克隆了一个小项目,并将它作为模块加入到我的项目中。但是当我通过git将它部署到服务器时,它只上传目录(文件夹),但没有任何内容,文件夹是空的。
我该如何解决这个问题,为什么会发生这种情况?
每当我做的经典套路:推送操作忽略加入通过GIT中克隆预计,目录
git add -A
git commit -am "foo"
git push remote branch
Git不会上传通过git clone
命令添加的文件。
例如,我从github中克隆了一个小项目,并将它作为模块加入到我的项目中。但是当我通过git将它部署到服务器时,它只上传目录(文件夹),但没有任何内容,文件夹是空的。
我该如何解决这个问题,为什么会发生这种情况?
如果你在一个git仓库中并且克隆另一个git仓库,git会在从父仓库添加东西时忽略里面的那个。
基本上git会检查每个添加的文件夹里面是否有.git
文件夹。如果从子克隆文件夹中删除.git
文件夹,则可以正常添加该文件夹,就像手动复制文件一样
如何解决此问题取决于您想要的内容。你想跟踪这个亚克隆的回购,并能够拉动和更新吗?如果是,那么你需要看看git submodules。如果没有,只需克隆它,rm -rf .git
然后添加文件夹。 但是,这两个选项当然相当糟糕。您应该考虑使用依赖管理工具(例如cocoapods,npm等)
您是否有gitinore文件导致您的dir被忽略?当您添加-A时,dir及其文件是否显示为已上演? – DavidN
等一下,你是否在你现有的本地回购中克隆了另一个回购?如果是这样,git忽略它们。在这种情况下你可以使用子模块。 – DavidN
@DavidN没有'.gitignore'文件。当我使用'git add -A && git status'时,我记得这两个目录是红色的,并且有'(修改过的)'sufix,而其他的则是绿色的。 – Kunok