使用TortoiseGit更新和提交单个文件,如TortoiseSVN

问题描述:

我们的客户端在beanstalkapp.com上设置了多个版本控制项目。使用TortoiseGit更新和提交单个文件,如TortoiseSVN

其中大多数与颠覆。我在Windows上安装并设置了TortoiseSVN;这使我可以在我的电脑上拥有所有文件的副本。如果我想更改文件,可以右键单击它并选择“更新”(确保在编辑之前将其更新为最新版本),进行更改,然后右键单击它并选择“提交”。我还可以选择一些我已更改的文件,并将它们一一提交。

最新的项目使用git。我安装并设置了TortoiseGit,在我的计算机上克隆了存储库,但一直在发现界面更令人困惑。

1)我似乎无法找到更新只是一个单一的文件,而不需要下载每一个更改文件的方式。我相信这是通过右键单击该文件夹(而不是文件)并选择TortoiseGit - > Pull来全局完成的。如果我尝试右键单击某个文件夹,则无法拉出;有一个'检查修改',但它似乎并没有做它听起来像。

2)我同样感到困惑。如果我右键单击并选择Git commit - > master,它确实允许我检查/取消选中要更改的文件。但是,看来我还必须做一个“推动”,这似乎也是全球性的。当我尝试更新文件,提交并选择“推送”时,文件已正确更新,但Beanstalk也在其日志中列出了我已作出另一项更改:

'合并分支'master'xxx.beanstalkapp。 com:/ xxx

包括一个我没有碰过的文件。当我选择“推送”时,我没有看到任何文件列表。

我一直在阅读关于类似问题的各种关于*的文章,但大多数人似乎是知道很多关于git的技术信息的人;使用命令行,分支等。

是否有任何简单的方法来更新一个文件,编辑它,并提交它,或者这是不可能与TortoiseGit?

GIT中,不像颠覆,不支持工作树(SVN:工作拷贝)的若*分具有不同碱基修改;总是有一个“HEAD”提交,它是整个树的基本修订。也不可能下载一些变化,而不是其他人;预计您可以使用整个历史记录(直到上次获取更改时为止),并在本地导航该历史记录(仍然是整个提交一次)。

您可以使用索引进行部分更改,但检查/推/拉提交始终是整个树上的操作。我不熟悉TortoiseGit,但是如果它添加了这些功能,那么由于需要扩展存储库格式,它必然会与命令行Git不兼容。)

如果您需要构建一个混合版本状态,那么首先,感兴趣的修改必须在不同的提交(它通常是一个好主意,在Git中进行细粒度的提交; git rebase -i可用于在发布它们之前拆分和连接提交)。创建一个来自一个感兴趣修订的临时分支;然后使用git mergegit cherry-pick来添加其他分支的更改,或使用git revert来撤销此分支历史记录的过去更改。