因为最新笔记软件换了 Logseq ,同步方案用的 Git ,用了一个脚本自动提交修改后的笔记库。
但是由于经常在公司和家里切换,回家里后经常提示需远端库更新,需要先 pull 一下才可以重新 push 。
我现在修改脚本如下,想获取 git push 的执行结果,如果报错了就执行一下 git pull ,但是这种写法似乎获取不到执行结果,不知道怎么回事。
希望大佬们指点一下。
function Start-GitAutoCommitAndPush {
[string] $status = (& git status)
if (!$status.Contains("working tree clean")) {
git add .
git commit -m "auto commit"
}
if ($PushToServer) {
# 执行 git push ,并记录执行结果
[string] $output = (& git push $Server $Branch)
# 如果执行结果里提示需要 git pull,则 git pull 一下。
if(!$output.Contains("git pull")){
git pull
}
}
}
1
renmu123 2022-07-13 14:20:16 +08:00 via Android
没必要获取结果,你就先 pull 然后 push 就完事了
|
2
Rebron1900 OP @renmu123 这样不太好把?我切换环境后只有第一次需要 pull
|
3
moen 2022-07-13 14:41:39 +08:00 1
git 的输出是写到 stderr 的,所以得写成 `& git push $Server $Branch 2>&1`
|
4
Rebron1900 OP @moen [string] $output = (& git push $Server $Branch 2>&1) 意思是这样?
|
5
Rebron1900 OP @moen 谢谢,解决了。
|