Git有问题,我无法用一个push命令推送所有子文件夹
我有一个项目目录如下:

project
      |
      |--main
      |     |__dir1
      |     |     |__file1
      |     |     |__filen
      |     |
      |     |__dir2
      |     |     |__file1
      |     |     |__filen
      |     |__dirn
      |           |__file1
      |           |__filen
      |
      |--tools
      |       |--dir1
      |       |     |__file1
      |       |     |__filen
      |       |
      |       |__dir2
      |       |     |__file1
      |       |     |__filen
      |       |
      |       |__dirn

使用此结构,我将使用以下命令创建一个新的本地存储库:
 cd project
 git init

然后,从项目文件夹中添加、提交和全部推送:
 git add .
 git commit -m "First commit"
 git push origin -u master

问题是在我的远程repo中,我只找到了第一级目录
所以我只找到了主文件夹和工具,但里面没有文件夹。
目前我在整个目录树中没有.gitignore。
我做错什么了?
非常感谢
更新1:
为了提供更多信息,我使用gogs作为git服务器https://gogs.io/

最佳答案

乍一看并不是那么简单,您不能简单地添加空目录,但是您可以通过在每个空目录中添加.gitkeep文件来克服它:

find . -type d -empty -exec touch {}/.gitkeep \;

{}被find命令找到的每个emptyDir替换,并成为shell(touch)命令的$1。
\;标记查找的exec参数的结尾。反斜杠“\”表示转义“;”表示-exec命令结束。否则它将被视为bash/shell终止符符号“;”

10-07 19:10
查看更多