[英]How to pipe git clone
我正在嘗試改進我的CI工具,並且這樣做我正在嘗試捕獲git clone命令的輸出,這讓我發瘋。
為了簡化場景,我將問題簡化為這個簡單的命令:
git clone --progress https://github.com/$REPO.git $FOLDER 2>&1 | xargs echo -
使用2>&1
我將stderr(由git用於輸出進度)重定向到stdout,然后我試圖將其傳遞給xargs echo -
。 在我的現實生活場景中, xargs echo
將被其他東西取代。
我正在使用--progress來強制git變得冗長,即使它沒有連接到真正的控制台。
我的預期輸出是:
- Cloning into 'a3'...
- remote: Counting objects: 54130, done.
- remote: Compressing objects: 100% (520/520), done.
我的輸出絕對沒有。 我在OSX 10.11上測試了這個。
有誰知道這個命令有什么問題?
非常感謝你提前。
我用它來解決它
git clone --progress --branch $TAG_VERSION https://github.com/$REPO ./ 2>&1 | tr '\u000D' '\n'"
你的命令對我有用。 它輸出類似“ - 克隆到repo ...遠程......”的內容。 我猜你的系統由於輸出緩沖而無法捕獲輸出。
嘗試在每條記錄后打開刷新(將GIT_FLUSH
環境變量設置為1
)。 另外,關閉git clone
命令的緩沖:
repo='your-repo-uri'
while read -r l; do
echo "<<<<<<<<<<"
echo "$l"
echo ">>>>>>>>>>"
done < <(GIT_FLUSH=1 stdbuf -i0 -o0 -e0 git clone --progress "$repo" 2>&1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.