【问题标题】:Using Git via command line is buggy, but bash works fine?通过命令行使用 Git 有问题,但 bash 可以正常工作吗?
【发布时间】:2012-04-07 13:05:51
【问题描述】:

我们正在尝试修改 NANT 构建脚本以从我们的远程 Git 存储库中提取更改,然后从构建服务器上的本地存储库发布。在测试我需要运行的命令时,我发现直接使用 Git.exe 似乎有问题。

我可以通过 Windows 命令行进行提取,它会正确更新远程分支以指向比我的本地分支更新的版本。但是,当我尝试将这些远程更改合并到本地分支时,它声称我有未提交的更改并且不会让我合并。如果我运行“状态”,它会告诉我我没有任何更改,并且它已准备好与远程分支快速合并。

如果我切换到常规的 Git Bash,它就可以正常工作。我可以整天获取和合并,而不会出现关于我看不到的神秘未提交更改的奇怪问题。

【问题讨论】:

  • 请您发布您在此处看到的命令和错误消息,而不是在某些 3rd 方视频网站中。我确实尝试过,但我很无聊。需要注意的一点是,如果您想将同类与同类进行比较,您应该在每个示例中使用相同的工作树。
  • 我不确定你的意思,我使用的是同一个工作树...在传递--git-dir 选项时,你必须在末尾指定.git。
  • 错误正是我所说的。确切的措辞是“您对以下文件的本地更改将被合并覆盖:在 fetch 中更新的文件列表请在合并之前提交您的更改或存储它们。”
  • 我并没有真正关注视频,但看起来您确实在一个版本中使用 ...\Git\bin 作为工作树。我可能弄错了,我真的不明白发生了什么。
  • @CharlesBailey \Git\bin 是 Git.exe 的工作目录,我们在其中传递参数。 Git Bash 是一个正在运行的 Git 控制台。该程序本身也位于 \Git\Bin 中。在 Windows CMD 中,我们将 git 目录作为参数传递。但是,Git Bash 是在 git 目录的上下文中运行的。他们应该做同样的事情,但似乎在合并时失败了。

标签: git bash command-line nant dvcs


【解决方案1】:

合并时需要指定工作树:

git --git-dir=c:\code\klas\.git --work-tree=c:\code\klas merge origin/master

编辑:刚刚注意到查尔斯·贝利在评论中提到了它,我确保我没有试图杀死偷窃 :)

【讨论】:

    猜你喜欢
    • 2012-09-05
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多