33

我的任务是向我的同事介绍 Git,他们几乎完全是 Windows 用户,习惯于使用 TortoiseCVS。我已经使用 Git 大约一年了,但我几乎只使用 Unix 命令行界面。

所以我一直在尝试熟悉包括 TortoiseGit 在内的 Windows GUI Git 工具。但在我看来,这不仅仅是 Git 命令行界面上的 GUI 皮肤,而且实际上完全抽象了一些东西,特别是索引。

例如,当我在 Windows 资源管理器中右键单击一个新的、未版本控制的文件时,我可以从 TortoiseGit 菜单中选择“添加”,然后提交该文件,但是在 Git 中已经存在的文件中缺少相同的菜单项,在在这种情况下,我只看到“子模块添加”选项。

有没有办法用 TortoiseGit 与索引交互?

我正在寻找git add, git diff --cached, 和的类似物git reset HEAD

这是给 Google 小组的一条关于此的消息,但它是从去年夏天开始的。

我正在使用 TortoiseGit 版本 1.6.5.0 和 msysgit 版本 1.7.4.msysgit.0,如果重要的话。我几天前才安装了这些,所以它们可能是最新的。

4

4 回答 4

22

答案是:不,你不能

对我来说,TortoiseGit 是一个工具,您可以使用它来更轻松地从 CVS 过渡到 Git(就像我在回答TortoiseGit 实际上让 Git 像 TortoiseSVN 一样更容易使用吗?)。但是,一旦完成了过渡并且您的同事对 Git 更加熟悉,就该拿出真正的工具了。

而与 Git 交互最强大的工具就是命令行。时期。Git Guigitk也可用,带来一些便利但缺乏资源管理器集成(至少在覆盖方面)。但是在多头开发框的时代:为什么不在一台监视器(用于一般管理的监视器)上打开 Git Gui 并在另一台监视器上工作?

我最近还在我的团队中介绍了 Git。我们习惯了 TortoiseSVN,所以我也向他们展示了如何使用 Tortoise 添加文件,如何提交等。但在每张幻灯片上,我还注意到他们必须在 Git Bash 中输入什么才能获得相同的结果。这样,一旦他们更有经验,他们就可以拿出介绍幻灯片并查看他们必须使用的命令。

于 2011-05-19T20:13:31.147 回答
4

在有限的范围内,您可以在 TortoiseGit 中执行这些操作。例如,有一个重置对话框。它们并不突出(我认为),因为使用 TortoiseGit 意味着您对 git 索引的需求较少——有方便且功能强大的 GUI 方法来选择和审查您打算提交的内容,因此索引变得不那么必要。

话虽如此,TortoiseGit 为初学者和高级 git 用户带来了许多有用的东西,尽管它只是命令行的补充,而不是替代。

作为一个额外的过渡,您可能对我使用的批处理文件感兴趣,它允许从命令行方便地调用那些 TortoiseGit GUI 窗口,从而稍微模糊了界限:https ://github.com/ses4j/tgit

于 2014-10-27T15:40:56.093 回答
4

事实比迄今为止的答案更糟糕。我尝试了一个实验:git add对索引进行一些更改,恢复工作树以匹配当前 HEAD,然后运行 ​​TortoiseGit 提交。

它将更改的文件列为有资格包含在提交中的文件之一,因此它知道某些内容已更改,这给人的印象是至少它知道如何完成已由另一个工具暂存的提交。但是当我选择它时,提交实际上使用了工作树副本并销毁了索引中未提交的数据,并且提交最终成为对该文件的无操作。

一个危险的工具,我想我会避免它。

于 2014-12-07T05:40:59.257 回答
0

最近遇到了在git add对相同文件进行更改时使用来应用存储的需要,发现我可以使用一个技巧:在 repo 中(例如.txt)拥有(创建)一个新文件,打开提交窗口,它将显示更改的文件和新的文件。选择所有更改的文件和新文件。右键单击新文件,您将在Add那里获得命令。它将应用于git add所有选定的文件。之后,您可以只Revert使用新文件。所有这些都让我可以对修改过的文件应用 stash。

于 2016-12-20T04:39:48.343 回答