Git mv因Fatal而失败:源目录为空

时间:2016-03-10 02:04:10

标签: git

我想在repo的子文件夹中维护文件的历史记录。但我需要重命名顶级文件夹名称。当我运行' git mv dirName newDirName 我得到了致命:源目录是空的;'

我的源目录具有以下结构:

gitRepoDir
--.git
--Source 
--  -DirLevel2 
--   --DirLevel3 
--     --DirLevel4 
--       --DirLevel5 
+++       --DirNameToRename 
+++         --sub1dir 
+++           --File 
+++         --sub2dir 
+++           --File 
+++         --sub3dir 
+++           --File 
+++           --File 
+++         --sub4dir 
+++           --File

有没有办法重命名顶级文件夹并维护以下子文件夹中的文件历史记录?或者我是否需要先创建目录结构,然后使用git mv命令移动文件?

5 个答案:

答案 0 :(得分:24)

我认为,'致命:源目录为空;',表示dirName不在git控件下,因为它不是源代码的一部分。 例如,您可以尝试“git status”,找出git可以控制的任何内容。

答案 1 :(得分:4)

您应该只告诉git mv跳过任何导致失败情况的操作

git mv -k dirName newDirName

答案 2 :(得分:3)

通常,git命令中使用的路径名是从当前目录开始的相对路径。

因此,对于您的问题,应检查以下内容。

1)dirName是否是由git管理的目录。你可以使用命令git ls-files

2)dirName文件夹是否在当前导演下。

答案 3 :(得分:0)

如果在源文件夹的路径中使用反斜杠,则在Windows上可能会发生这种情况。

答案 4 :(得分:0)

就我而言,错误消息$sqlSvrName=“DBServerName" $sqlDbName=“DatabaseName" $sqlUserName=“DatabaseUserName" $sqlPassword=“DatabaseUserPassword" $sqlStoredProcedure=“StoredProcedureName" $sqlConnection = New-Object System.Data.SqlClient.SqlConnection $sqlConnection.ConnectionString = “Server=$sqlSvrName;uid=$sqlUserName;pwd=$sqlPassword;Initial Catalog=$sqlDbName“ $startDateTime = Get-Date $sqlConnection.Open() select $sqlConnection.ConnectionString $sqlCmd = New-Object System.Data.SqlClient.SqlCommand # specify that command is a stored procedure $sqlCmd.CommandType=[System.Data.CommandType]'StoredProcedure' # specify the name of the stored procedure $sqlCmd.CommandText = $sqlStoredProcedure $sqlCmd.Connection = $sqlConnection #————- specify optional parameters to stored procedure #$startDateTime=$sqlCmd.Parameters.Add(“@rundatetime" , [System.Data.SqlDbType]::DateTime) $startDateTime = Get-Date $sqlCmd.ExecuteNonQuery() 所指示的实际上是什么,即,除非我在目录中添加了.gitignore file as dummy file,否则无法提交空的源目录。只有在那之后,我才能source directory is empty那个目录。