git 推送时缺少子文件夹
git subfolder missing on push
我在使用 Git 时遇到了一些问题,我无法使用单个推送命令推送所有子文件夹
我有一个项目目录如下:
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
问题是在我的远程仓库中我只找到了第一级目录
所以我只找到了 main 和 tools,但里面的文件夹 none。
目前我没有任何.git在整个目录树中忽略。
我做错了什么?
非常感谢
更新 1:
为了提供更多信息,我使用 gogs 作为 git 服务器 https://gogs.io/
乍一看不是那么简单,你不能简单地添加空目录,但你可以通过将 .gitkeep 文件添加到每个空目录中来克服它:
find . -type d -empty -exec touch {}/.gitkeep \;
{} 被 find 命令找到的每个空目录替换,并成为 shell(touch)命令的 $1。
\;标记查找的 exec 参数的结尾。反斜杠“\”是为了转义“;”标志以标记 -exec 命令的结束。否则它将被视为 bash/shell 终止符 ";"
终于找到了问题的根源...目录权限存在一些问题。使用简单的 chown/chmod 一切都按预期工作。
我在使用 Git 时遇到了一些问题,我无法使用单个推送命令推送所有子文件夹
我有一个项目目录如下:
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
问题是在我的远程仓库中我只找到了第一级目录 所以我只找到了 main 和 tools,但里面的文件夹 none。
目前我没有任何.git在整个目录树中忽略。
我做错了什么?
非常感谢
更新 1:
为了提供更多信息,我使用 gogs 作为 git 服务器 https://gogs.io/
乍一看不是那么简单,你不能简单地添加空目录,但你可以通过将 .gitkeep 文件添加到每个空目录中来克服它:
find . -type d -empty -exec touch {}/.gitkeep \;
{} 被 find 命令找到的每个空目录替换,并成为 shell(touch)命令的 $1。
\;标记查找的 exec 参数的结尾。反斜杠“\”是为了转义“;”标志以标记 -exec 命令的结束。否则它将被视为 bash/shell 终止符 ";"
终于找到了问题的根源...目录权限存在一些问题。使用简单的 chown/chmod 一切都按预期工作。