1

我知道这听起来可能很疯狂,但我认为它会奏效.. 我们必须每周向经理报告快速获胜,所以我想的是我们可以使用 git 进行日志记录,然后经理可以直接通过 7日志的天数。

所以我使用以下命令创建了一个 git repo

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

尽管您收到错误的原因与此问题重复,但让我为您提供更多详细信息,因为您似乎将工作流程与报告混为一谈...

因此,团队中的每个人都可以执行 git pull 并推送到 repo

假设您正在执行上述步骤,那么您的拉动很可能由于冲突而失败。在推送更改之前,您必须解决冲突以完成合并。做一个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"

您可以在专用的本地存储库上使用该 git log 命令,该存储库仅在您想要打印 7 天日志之前从远程提取,或将其重定向到文件或另一个脚本。

于 2013-02-27T14:16:48.503 回答