簡體   English   中英

如何管git clone

[英]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)

你可以用這個:

git clone --progress url > clone.txt 2>&1

訣竅是添加2>&1作為命令的最后一個參數。
它將打印出所有命令,因為它們將被打印到終端,但現在它們被寫入所需的文件。

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM