1

これはおかしなことに聞こえるかもしれませんが、うまくいくと思います。毎週、クイックウィンを飼い葉桶に報告する必要があるので、gitを使用してログを記録すると、マネージャーはパス7を取得できます。ログの日数。

だから私は次のコマンドでgitリポジトリを作成します

mkdir mynotes.git
cd mynotes.git
git init

次に、このスクリプトを作成します。

#!/bin/sh
clear
echo "Quick Logging (Press Enter on a blank line to exit)"
while true
do
    echo
    read -p "log> " logtext
    if test -z "$logtext"
    then
        exit 0
    else
    git commit --allow-empty -m "$logtext"
    fi
done

したがって、チームの各メンバーはgit pullを実行してリポジトリにプッシュできます。私が抱えている問題は、誰かがログに記録しているときに誰かがリポジトリにプッシュしてからプッシュしようとすると、このエラーが発生することです。

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@git.xxxx.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.

このシステムをどのように機能させることができますか..それを機能させることができれば、それは素晴らしいもののように聞こえます

4

1 に答える 1

3

エラーが発生する理由はこの質問と重複していますが、ワークフローとレポートを混同しているように思われるため、詳細を説明します...

そのため、チームの各メンバーはgitpullを実行してリポジトリにプッシュできます

説明したように上記の手順を実行していると仮定すると、競合が原因でプルが失敗した可能性があります。変更をプッシュする前に、競合を解決してマージを完了する必要があります。git status競合するファイルを確認し、それらを変更し、git addそれらをステージングするために実行してから、コミットしてプッシュします。

別のアプローチをお勧めします。開発ワークフローでマージを管理し、7日間のレポートを個別に実行します。このgit logコマンドには、そのための優れたオプションがあります。

git log --since="7 days ago"

git log他にも便利なフォーマットオプションがたくさんあるので、コマンドのマニュアルを確認してください。

git log --since="7 days ago" --pretty=format:"%ad|%h|%cn|%s"

そのgitlogコマンドは、7日間のログを印刷する直前、またはファイルや別のスクリプトにリダイレクトする直前にリモートからプルする専用のローカルリポジトリで使用できます。

于 2013-02-27T14:16:48.503 に答える