PowerShell ile Git'i edinin


Bugün PowerShell betikleri, araçları veya modülleri oluşturuyorsanız büyük olasılıkla Git kullanıyorsunuzdur. Ne? Sen değilsin? Kurulumu henüz yapmadığınız için mi? Windows sistemlerinde size yardımcı olacak bazı "hızlı ve kirli" PowerShell hack'lerim var. Linux erkekleri ve kızları ne yapacaklarını zaten biliyorlar.

Doğal olarak Git'in en son sürümünün indirme bağlantısını bulmak için bir arama yapabilirsiniz. Veya Chocolatey kullanıyorsanız büyük ihtimalle paketleri nasıl bulacağınızı ve kuracağınızı biliyorsunuzdur. Ama belki de Chocolatey kullanmıyorsunuz (ya da kullanamıyorsunuz). Bu iyi. PowerShell bu görevi hızlı bir şekilde gerçekleştirebilir.

#download the latest 64bit version of Git for Windows
$uri = 'https://git-scm.com/download/win'
#path to store the downloaded file
$path = $env:temp

#get the web page
$page = Invoke-WebRequest -Uri $uri -UseBasicParsing 

#get the download link
$dl = ($page.links | where outerhtml -match 'git-.*-64-bit.exe' | select -first 1 * ).href

#split out the filename
$filename = split-path $dl -leaf

#construct a filepath for the download
$out = Join-Path -Path $path -ChildPath $filename

#download the file
Invoke-WebRequest -uri $dl -OutFile $out -UseBasicParsing

#check it out
Get-item $out

Kodum 64bit bir sistemde çalıştığınızı varsayıyor. Yorumlar her şeyin nasıl çalıştığını açıklamalıdır. Çalıştırdığınızda en son yürütülebilir kurulum dosyasını alırsınız. Gerektiğinde yapılandırabilmeniz için manuel olarak yüklemenizi öneririm.

Bununla ilgili olarak bir birleştirme çakışması aracına ihtiyacınız olabilir. kdiff3 kullanıyorum. İşte indirmek için benzer kod.

$k = invoke-webrequest https://sourceforge.net/projects/kdiff3/files/kdiff3/0.9.98/KDiff3-64bit-Setup_0.9.98-2.exe/download -UseBasicParsing
$dl = $k.links | where href -match downloads
$dluri = $dl.href.split("?")[0]
$filename = Split-Path $dluri -Leaf
$out = Join-Path $path -ChildPath $filename

Invoke-WebRequest -uri $dluri -OutFile $out -UseBasicParsing

get-item $out

Yine devam edin ve manuel olarak yükleyin.

Son git hack'im, sürümü almak için PowerShell'i kullanmak. Git'i yüklediyseniz kolayca çalıştırabilirsiniz.

git --version

Windows'ta git version 2.14.1.windows.1 gibi bir şey alacaksınız. Ancak PowerShell meraklısı olduğum için yalnızca sürüm numarasını görüntülemek istedim. Bu yüzden değeri çıkarmak için normal bir ifade kullandım.

$v = git --version
[regex]$rx ="(\d+\.){1,}\d+"
$rx.match($v).value

Aynı kod Linux'ta açık kaynak PowerShell'de de çalışacaktır. Windows kullanıcıları kayıt defterini de kontrol edebilse de:

Get-itemproperty HKLM:\SOFTWARE\GitForWindows | Select CurrentVersion,InstallPath

İndirmeniz gerekip gerekmediğini öğrenmek için Windows'un en son git sürümünü kontrol etmek ister misiniz? Bu işlevi kullanın.

Function Get-GitCurrentRelease {
[cmdletbinding()]
Param(
[ValidateNotNullorEmpty()]
[string]$Uri = "https://api.github.com/repos/git-for-windows/git/releases/latest"
)

Begin {
    Write-Verbose "[BEGIN  ] Starting: $($MyInvocation.Mycommand)"  

} #begin

Process {
    Write-Verbose "[PROCESS] Getting current release information from $uri"
    $data = Invoke-Restmethod -uri $uri -Method Get

    
    if ($data.tag_name) {
    [pscustomobject]@{
        Name = $data.name
        Version = $data.tag_name
        Released = $($data.published_at -as [datetime])
      }
   } 
} #process

End {
    Write-Verbose "[END    ] Ending: $($MyInvocation.Mycommand)"
} #end

}

Eğlenceli, değil mi? Artık Windows masaüstünüze git kurmanın hiçbir mazereti yok.

İlgili makaleler