Git 建议改进我的Powershell脚本,以使用来自master的最新内容更新克隆文件夹
想向社区询问我在这里采用的从主机更新克隆文件夹的方法 我有两个文件夹Git 建议改进我的Powershell脚本,以使用来自master的最新内容更新克隆文件夹,git,powershell,tfs,devops,Git,Powershell,Tfs,Devops,想向社区询问我在这里采用的从主机更新克隆文件夹的方法 我有两个文件夹 主文件夹是TFS(Azure Dev Opps)绑定的解决方案 主机的克隆,但Github是repo “我的主文件夹”是一个“TFS解决方案”,它生活在自己的生态系统中,有自己的内部用户,而克隆“Github”则有自己的外部用户和自己的生态系统 使用此脚本,我的目标是使克隆repo保持最新状态,并对主副本进行最新更改 主机进行更改-->克隆文件发生的更改将得到更新 重要的是,每次我做更改时,不要盲目地将整个文件夹从主文件夹剪切
#Create path variables
$olddir = "C:\Data\Master"
$newdir = "C:\Users\Clone"
#Get the list of files in oldFolder
$oldfiles = Get-ChildItem -Recurse -path $olddir | Where-Object {-not ($_.PSIsContainer)}
#get the list of files in new folder
$newfiles = Get-ChildItem -Recurse -path $newdir | Where-Object {-not ($_.PSIsContainer)}
Compare-Object $newfiles $oldfiles -Property LastWriteTime -Passthru | sort LastWriteTime | foreach {
$fl = (($_.Fullname).ToString().Replace("$olddir","$newdir"))
$dir = Split-Path $fl
if ($fl -notlike '*\obj\Release\*'){
if( $_.Fullname -ne $fl){
If (!(Test-Path $dir)){
mkdir $dir
}
copy-item $_.Fullname $fl -Force
Write-Host "From to --> " $_.Fullname "TO --> " $fl
}}
}
我觉得很结实。有没有办法将Git回购与TFS本机同步?我没有任何TFS经验 另一种处理方法是将
C:\Users\Clone\*.
的内容压缩到一个时间戳文件(例如:OldFiles\u changed\u 01\u 2018\u 10\u 42\u am.zip)中,然后复制到新修改的repo上-这样,每次更改都会在C:\Users\Clone\
中有历史副本。。(不过,这有点多余,因为您在前端使用Git)
至于“最佳实践”——这些天来基本上只是指“安全性”——在我看来很好。就“实践”而言,这才是最适合您的场景的。。如果每次发生更改时都不需要*.zip备份,那么您的原始脚本看起来是可靠的。那么
robocopy
和镜像/mir
选项呢?@LotPings您能提供一个您可以推荐的示例用例吗?我不熟悉机器人技术,谢谢@LotPings我在寻找一个比谷歌更具体的答案,如果你是专家,我希望你能分享一些知识。我从robocy“C:\Data\Master”“C:\Users\Clone”*/mir/XD“\obj\Release”/L开始,/L将只记录将被复制的内容。感谢你建议进行备份,当更新发生时,真正理想的解决方案是双向(主-->clone)和(克隆-->Master)解决方案。仍然在看tho!是的,这听起来像是一个艰难的场景!如果我是你,我会把研究重点放在一些本地同步Git/TFS的方法上,反之亦然。干杯另外,robocopy
笨重,不是你想要的。您最好使用一些同步文件的第三方工具,如DirSync Pro: