在Travis中,GIT致命错误:模棱两可的参数'HEAD':未知的修订版或不在工作树中的路径。

3

我有以下配置:

git version 1.8.5.6
GNU bash, version 4.2.25(1)-release (x86_64-pc-linux-gnu)

我调用了zgit_info_update,并尝试进行提交。但是当我在Travis的Bash中运行git diff --name-only dev时,仍然遇到问题(Git diff命令返回错误#6069)。

我该如何解决这个问题?

以下是输出内容:

git version 1.8.5.6
GNU bash, version 4.2.25(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later       <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
* (detached from FETCH_HEAD)
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
[detached HEAD 72afa70] Add package.json
 1 file changed, 37 insertions(+)
 create mode 100644 package.json
fatal: ambiguous argument 'dev': unknown revision or path not in the   working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

瞎猜一下:先尝试 git pull 操作? - набиячлэвэли
2个回答

0
一个更简单的解决方案是:
git remote set-branches --add origin $BRANCH_TO_DIFF_AGAINST
git fetch
git diff origin/$BRANCH_TO_DIFF_AGAINST

需要解释一下。例如,这个想法/要点是什么?为什么它可以解决问题?请通过编辑(更改)您的答案来回复,而不是在评论中回复(不要包含“编辑:”,“更新:”或类似内容 - 答案应该看起来像今天写的)。 - Peter Mortensen
这与defrex在GitHub上对该问题的评论非常相似。 - Peter Mortensen

0
问题已通过以下命令修复:
if [ "$TRAVIS" == "true" ]; then
  # Resolving `detached HEAD` by attaching HEAD to the `TRAVIS_FROM_BRANCH` branch
  TRAVIS_FROM_BRANCH="travis_from_branch"
  git branch $TRAVIS_FROM_BRANCH
  git checkout $TRAVIS_FROM_BRANCH

  # Fetching `TRAVIS_BRANCH` branch
  git fetch origin $TRAVIS_BRANCH
  git checkout -qf FETCH_HEAD
  git branch $TRAVIS_BRANCH
  git checkout $TRAVIS_BRANCH

  # Switch to `TRAVIS_FROM_BRANCH`
  git checkout $TRAVIS_FROM_BRANCH
fi

需要进行解释。例如,这个想法/主旨是什么?它应该做什么和实现什么目标?为什么需要7个Git调用?请通过编辑(更改)您的答案来回复,而不是在评论中回复(不要添加“编辑:”,“更新:”或类似内容 - 答案应该看起来像今天写的)。 - Peter Mortensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接