没有共同的祖分支
fatal: refusing to merge unrelated histories
没有共同的祖分支,常见拉了一个新项目然后上传到自己的仓库中。解决方式:git push --force origin master
,在git上会出现如下提示:
更新系统后用户名改变了
错误:fatal: detected dubious ownership in repository at 'D:/code/java/my/shy-mall' 'D:/code/java/my/shy-mall' is owned by: BUILTIN/Administrators (S-1-5-32-544) but the current user is: MINGGOGO/87336 (S-1-5-21-1049176649-1870071189-3993659285-1001) To add an exception for this directory, call: git config --global --add safe.directory D:/code/java/my/shy-mall
这个错误信息表明Git检测到你在D:/code/java/my/shy-mall
目录下的代码库的拥有者和当前用户不一致。Git出于安全考虑,不允许在这样的代码库上执行操作。
解决方法如下:
全局添加安全目录: 你可以按照错误信息中的提示,使用以下命令将这个目录添加到Git的安全目录列表中:
git config --global --add safe.directory D:/code/java/my/shy-mall
更改目录的所有权: 如果你有权限,你也可以更改目录的所有权,使其与当前用户一致。这通常需要管理员权限。你可以使用以下命令(需要在命令提示符或者PowerShell中以管理员身份运行):
takeown /F D:\code\java\my\shy-mall /R
更新更改时出错: detected dubious ownership in repository at 'D:/code/java/my/shy-mall' 'D:/code/java/my/shy-mall' is owned by: BUILTIN/Administrators (S-1-5-32-544) but the current user is: MINGGOGO/87336 (S-1-5-21-1049176649-1870071189-3993659285-1001) To add an exception for this directory, call: git config --global --add safe.directory D:/code/java/my/shy-mall
执行命令: 在命令提示符或 PowerShell 中输入以下命令,并按回车键:
git config --global --add safe.directory D:/code/java/my/shy-mall
添加git白名单
创建标本文件
# 定义需要添加的目录列表
$directories = @(
"D:/code/java/my/saas-mall",
"D:/code/java/my/shy-mall",
"D:/code/java/my/ai_forum",
"D:/code/java/my/miniapp-private-domain",
"D:/code/java/my/system-active",
"D:/code/java/my/xc_supply_chain",
"D:/code/java/myScript/script",
"D:/code/java/sh/mp-shcm-gyl",
"D:/code/java/sh/ruoyi-vue-pro-master",
"D:/code/java/sh/ruoyi-vue-pro-master-new",
"D:/code/java/sh/sh_collect",
"D:/code/java/sh/sh-finance",
"D:/code/java/sh/sh-official-website",
"D:/code/java/sh/shqx-mall",
"D:/code/java/sh/slice",
"D:/code/java/sh/system-shcm-gyl",
"D:/code/java/sh/tm-hotspot",
"D:/code/java/sh/youdao-backend"
)
# 遍历每个目录并添加到Git的安全目录列表中
foreach ($directory in $directories) {
git config --global --add safe.directory $directory
Write-Host "Added $directory to safe directories."
}
执行脚本.\add_all_git_repos.ps1
会报如下错误:
PS D:\脚本> .\add_all_git_repos.ps1
.\add_all_git_repos.ps1 : 无法加载文件 D:\脚本\add_all_git_repos.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅
https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ .\add_all_git_repos.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
有两个解决方案,一个是临时关闭:Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
永久关闭:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
这两种任何一个都可以运行脚本,然后继续执行脚本就可以了:.\add_all_git_repos.ps1
最后检查是否添加成功:git config --global --get-all safe.directory