当前位置: 首页 > 编程语言 > C#

从C#函数运行git命令分享

时间:2023-04-10 12:40:13 C#

从C#函数运行git命令我的C#代码如何在检测到跟踪文件中的更改时运行git命令?为此,我正在编写一个VisualStudio/C#控制台项目。我是.NET环境的新手,目前致力于将自动GIT提交集成到文件夹中。我需要自动提交对已知文件夹的任何更改/添加/删除并将它们推送到gitremote。任何指导表示赞赏。谢谢。这是我的,最后一个是我需要一些指导:Git存储库最初设置在一个文件夹中,其中包含正确忽略的文件(完成)。我正在使用C#FileSystemWatcher来捕获对所述文件夹的任何更改(完成)。一旦我的项目检测到更改,它就需要提交并推送这些更改(待定)。项目需要运行的暂定命令:gitadd-Agitcommit"explanations_of_changes"gitpushour_remote注意:这段代码(没有用户交互)将是唯一提交到这个repo的实体,所以我不担心冲突并相信这个流将起作用。如果您想在C#中执行此操作,则可以在检测到文件更改时通过Process.Start调用外部git命令stringgitCommand="git";字符串gitAddArgument=@"add-A";stringgitCommitArgument=@"commit""explanations_of_changes"""stringgitPushArgument=@"pushour_remote"Process.Start(gitCommand,gitAddArgument);Process.Start(gitCommand,gitCommitArgument);Process.Start(gitCommand,gitPushArgument);不是最好的解决方案,但它在C#中有效我意识到这是一个老问题,但我想添加一个我最近遇到的解决方案来帮助未来的人。PowerShell类提供了一种与git交互的简单方法。这是.NET中System.Management.Automation命名空间的一部分。字符串目录=“”;//git存储库的目录using(PowerShellpowershell=PowerShell.Create()){//这从PowerShell启动时使用的用户文件夹更改为您的git存储库powershell.AddScript(String.Format(@"cd{0}",directory);powershell.AddScript(@"gitinit");powershell.AddScript(@"gitadd*");powershell.AddScript(@"gitcommit-m'gitcommitfromPowerShellinC#'");powershell.AddScript(@"gitpush");Collectionresults=powershell.Invoke();}在我看来这比使用Process.Start()方法更干净和更好。你可以编辑添加到powershell对象的脚本来修改它满足您的特定需求。另一种方法是在您的项目中设置Grunt和TaskRunner。Grunt应该能够自动检测项目中文件夹(或文件夹)的更改,并执行相应的git命令来提交它。TaskRunner允许您从VisualStudio中初始化和运行Grunt。VisualStudio团队表示TaskRunner将集成到VisualStudio的未来版本中,因此这可能是一个长期的解决方案。注意:评论已经在中提到,但我觉得值得再次提及的是,每当文件保存到存储库时自动提交并不是最佳实践。你想推送功能/primefaces代码更改,而不是简单的文本更改......自动提交风险自负。包管理器控制台是一个Powershell控制台。所以你可以从那里运行你的git命令。以上就是C#学习教程:从C#函数运行git命令,分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: