Git子树分割+合并效果不佳

时间:2014-12-11 01:56:15

标签: git git-subtree

我的代码依赖于现有存储库提供的文件。由于每个文件都需要一些工作,我想在支持文件时将文件带入,而不是一次添加所有文件。我还想跟踪并提交导入文件的上游更改。

经过一些阅读后,git子树分裂似乎很有希望,我按照

中的指示进行了操作

Git Subtree only one file or directory

进行一些修改

git remote add project _URL_
git fetch project

然后

git branch project_master project/master
git checkout project_master

然后

git subtree split --squash --prefix=path_of_interest_in_project -b temp_branch

然后

git checkout master
git subtree merge --prefix=directory_destination_path temp_branch

git子树合并似乎忽略了前缀标志,并检查项目根文件夹中path_of_interest_in_project的内容。在导入项目/主文件的整个历史记录时,似乎没有进行挤压。

这是正确的行为还是Git中的错误?是否有更好的解决方案来实现我想要的目标?

1 个答案:

答案 0 :(得分:1)

我看到的内容与您描述的内容类似,但不是将子项目文件放置在项目根目录中的子树合并,当您执行无害的旧{{{{{{{{{{{{{{{{{{{{{ 1}}没有规格。

您现在所做的function get-localgroupmember { [CmdletBinding()] param( [Parameter(Mandatory=$True,HelpMessage="Enter PC")] [string[]]$computername ) BEGIN { Add-Type -AssemblyName System.DirectoryServices.AccountManagement $ctype = [System.DirectoryServices.AccountManagement.ContextType]::Machine $OKAccounts = ("Workstation Admin","Domain Admins" | ForEach{[regex]::Escape($_)}) -join "|" } PROCESS{ foreach ($computer in $computername) { If (Test-Connection -ComputerName $computer -Quiet -Count 1) { try { $context = New-Object -TypeName System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ctype, $computer $idtype = [System.DirectoryServices.AccountManagement.IdentityType]::SamAccountName $group = [System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($context, $idtype, 'Administrators') $group.Members | select @{N='Server'; E={$computer}}, @{N='Domain'; E={$_.Context.Name}}, samaccountName | Where{ !(($_.Server -ieq $_.Domain -and $_.samaccountname -match "Administrator") -or ($_.Server -ne $_.Domain -and $_.samaccountname -match $OKAccounts)) } } catch { [pscustomobject] @{ Server = $computer Domain = "Error" Account = "Error" } } } else { [pscustomobject] @{ Server = $computer Domain = "Off-Line" Account = "Off-Line" } } } # end foreach } # end PROCESS } 认为子项目是一个有效的上游对等体,正在从中拉出来。导致意外的东西降落在这里。

我目前的解决方法是确保我只是来源于'来源'从现在开始,但跟踪配置中可能存在一个可以恢复预期行为的设置。我试图找到它......