我们的客户在beanstalkapp.com上设置了几个版本控制项目。
他们中的大多数都有颠覆。我在Windows上安装并设置了TortoiseSVN;这让我可以在我的电脑上获得所有文件的副本。如果我想更改文件,我可以右键单击它并选择“更新”(以确保在编辑之前将其更新为最新版本),进行更改,然后右键单击它并选择“提交”。我还可以选择一些我已经更改的文件并将其全部提交到一起。
最新的项目使用git。我安装并设置了TortoiseGit,在我的计算机上克隆了存储库,但是发现界面更加混乱。
1)我似乎无法找到更新单个文件的方法,而无需下载每个单独更改的文件。我相信这是通过右键单击文件夹(而不是文件)并选择TortoiseGit - >全局完成的。拉。如果我尝试右击单个文件夹,则没有拉动;有一个'检查修改',但它似乎没有听起来像。
2)我同样对提交感到困惑。如果我右键单击并选择Git commit - >它确实允许我检查/取消选中我想要更改的文件。但后来我似乎还要做一个“推动”,这似乎也是全球性的。当我尝试更新文件,提交并选择“推送”时,文件已正确更新,但Beanstalk也在其日志中列出了我做了另一项更改:
'合并分支'master'的xxx.beanstalkapp.com:/xxx
包括我根本没有碰过的文件。当我选择'推送'时,我没有看到任何文件列表。
我一直在阅读有关类似问题的关于stackoverflow的各种文章,但大多数人似乎都知道有关git的大量技术信息的人;使用命令行,分支等
有没有简单的方法来更新一个文件,编辑它并提交它,或者这对TortoiseGit来说是不可能的?
答案 0 :(得分:2)
Git 不支持具有不同基本修订版的工作树(svn:工作副本)的部分内容;总有一个“HEAD”提交,它是整个树的基本修订版。也不可能下载一些变化而不是其他变化;预计您可以获得整个历史记录(直到您上次获取更改时)并导航该历史记录本地(一次仍然是整个提交)。
您可以使用索引提交部分更改,但是提交的checkout / push / pull始终是整个树上的操作。
(我不熟悉TortoiseGit,但如果它添加了这些功能,那么由于需要扩展存储库格式,它必然与命令行Git不兼容。)
如果您需要构建混合修订状态,那么首先,感兴趣的更改必须在单独的提交中(在Git中通常是一个好主意,以便做好-grained提交; git rebase -i
可用于在发布之前拆分和加入提交)。创建一个从一个感兴趣的修订派生的临时分支;然后使用git merge
或git cherry-pick
添加来自其他分支的更改,或git revert
撤消此分支历史记录的过去更改。