我想知道我是否在脚本中处于"HEAD detached"状态.
目前我解析输出,git status但我不喜欢这样做,因为我听说解析Git输出是一个不好的做法,这对人类意味着 - 我想要一个程序友好的界面来告诉我HEAD是否已经分离.我也不想手动查看.git/HEAD或解析git description或git branch.
有任何想法吗?
Git有多少个命令?特别是 :
可选:命令有多少平均标志?
我有一个简单的 PowerShell 脚本来使文件夹与其 git 存储库保持同步。
Param(
[Parameter(Mandatory = $true)][string]$branch,
[string]$location,
[int]$depth
)
Get-ChildItem -Recurse -Directory -Depth $depth -Filter _$branch -Name -Path $location |
ForEach-Object {
Write-Output "`n$("{0:MM/dd/yy} {0:HH:mm:ss}" -f (Get-Date)): Getting latest from $location$_"
git -C $location$_ pull
} *>> logs\$branch.log
Run Code Online (Sandbox Code Playgroud)
当存储库已经是最新的时,它可以正常工作。但是,如果不是,则输出如下:
07/29/19 14:47:27:从某个路径获取最新信息
git :来自 https://gitlab.com/someplace
在某个地方\UpdateBranch.ps1:10 字符:5
+ git -C $location$_ 拉
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (来自 https://gi...n/somerepo:String) [], RemoteException
+ FullQualifiedErrorId : NativeCommandError
b34e5d0..3ec9561 开发 -> 起源/开发
b6d33b1..65fb520 功能/功能 1 -> 原点/功能/功能 1
* [新分支] … 我不明白这个优点.我已经看到它在本文这样的地方争论说取而不是拉动让你有机会在将它们合并到你的本地分支之前检查这些变化.
但是,例如,在该文章中,作者使用git diff master origin/master通过将其与当地主人进行比较来检查新获取的分支中所做的更改.
这是我感到困惑的地方....无论你是否先取得这个命令,该命令都会起作用.无论哪种方式,它都在比较本地主人和远程主人.您无需获取将本地分支与远程分支进行比较.
我错过了什么?