开发工具
记一次从已损坏的 Git 仓库中找回代码的经历
本文讲述了作者在使用 Git 过程中遇到的仓库损坏问题及其解决方法。作者首先介绍了 Git 损坏的迹象,如本地分支消失和错误的 Hash 指针,并提出了可能的解决办法,如删除 `.git` 目录后重新初始化仓库。然后,作者通过使用 `git reflog` 和 `git fsck` 命令,找到了丢失的对象,并尝试了手动解包和创建临时分支。最终,通过 `git fsck --lost-found` 命令,作者成功恢复了丢失的提交,并强调了在 Git 仓库损坏时尽量修复而不是删除 `.git` 目录的重要性。文章还提供了 Git 恢复和撤销操作的各种命令,以及推荐了 Fork 这个 Git GUI 工具,并附有参考链接。
开发工具
在 WSL 中使用 Linux 桌面环境的尝试与总结
博主分享了自己在使用Windows Subsystem for Linux (WSL)的过程中,尝试在WSL上使用Linux桌面环境的经历。WSL允许用户在Windows 10上直接运行Linux环境,但默认仅提供命令行界面。博主介绍了两种在Windows上使用Linux桌面环境的方法:XServer和远程桌面,并重点讲述了通过XServer实现的方式。通过安装VcXsrv等XServer软件,并在WSL中安装Ubuntu桌面环境,博主成功运行了Ubuntu的Unity桌面。此外,博主还尝试了Elementary OS的Pantheon桌面环境和Linux Deepin的DDE桌面环境,但遇到了一些问题,如Elementary OS的桌面环境安装失败,而Deepin DDE安装顺利但启动困难。博主建议在WSL下应选择轻量级桌面环境,并推荐了xfce作为友好的选择。最后,博主表达了对Linux桌面环境市场混乱的看法,认为这是Linux在桌面市场输给Windows的原因之一。
开发工具
使用 VSCode 作为 SourceTree 的 Diff 和 Merge 工具
文章讨论了 SourceTree 作为 Git 可视化工具与命令行 git 命令配合使用的优势,包括界面舒适度和易用性。作者比较了 Git 工作流中的两种主流模式:官方推荐的五个分支的 Git Workflow 和 GitHub 上流行的 PR(Pull Request),指出它们各有优劣。作者强调了需要一个优雅的 Diff 和 Merge工具的必要性,并分享了如何将 SourceTree 与 VSCode 结合使用,通过配 SourceTree 使用VSCode 作为外部 Diff 和 Merge 工具。文中还提供了 Git 配置使用 VSCode 作为默认 Diff 和 Merge 工具的命令,使 Git 操作更加便捷和友好。
开发工具
基于 Docker 构建 .NET 持续集成环境
项目团队正努力实现持续集成(CI)和持续部署(CD),以提高自动化水平。目前,虽然基于 Docker 实现了自动化部署,但部署包的构建仍依赖人工,且每次版本更新需通过邮件通知相关人员。文章详细介绍了使用 Jenkins 和 Docker 实现项目自动化构建的过程,包括代码编译、单元测试、静态检查和版本发布等环节。介绍了在 Linux 环境下使用 MSBuild、Nuget、Sonar 和 NUnit 等工具的方法,并通过 Dockerfile 构建了整个 CI 环境。尽管项目最终因与 Windows 关联过深而放弃该方案,但文章为搭建私有 Linux 构建环境提供了宝贵经验。同时,作者对 DevOps 实践中的一些现象提出了批判和反思。
开发工具
使用 Jexus 实现 ASP.NET 在 Linux 平台下的部署
Payne在他的博客中讨论了在Linux平台上部署ASP.NET项目的问题。他介绍了选择使用Jexus来实现ASP.NET在Linux平台的部署的背景和原因,以及Jexus的特点和配置方法。此外,Payne还讨论了如何将工作转移到Docker容器中,并提供了通过Dockerfile构建网站镜像的步骤。最后,他总结了文章的主要内容,并提及了技术选型的复杂性和对Jexus性能等方面的考量,强调了技术决策的多方面影响。
开发工具
使用 SonarCloud 为.NET/.NET Core 项目集成静态检查
本文介绍了如何使用 SonarCloud 对.NET/.NET Core 项目进行静态代码检查。SonarCloud 是 SonarQube 的云版本,支持 .NET Framework 4.6 及以上版本和 .NET Core。文章首先讲解了 SonarCloud 的基本使用,包括创建项目、生成Token、设置项目类型和名称,并提供了如何将 SonarScanner 与 SonarCloud 结合使用进行代码扫描的步骤。接着,文章探讨了 SonarCloud 与 TravisCI 的集成,展示了如何通过 TravisCI 实现自动化的代码质量检测。作者通过配置 TravisCI 的 `.travis.yml` 文件,实现了在 Linux 环境下使用MSBuild、Nuget 和 NUnit 进行 .NET 项目的构建、测试和静态分析。最后,文章对整个流程进行了总结,指出虽然静态分析不能保证代码完全没有问题,但它是一种有益的代码质量管理手段。作者还提到,对于不公开的项目,更推荐使用 Jenkins 与 Sonar 的组合来实现持续集成和静态代码检查。
开发工具
持续集成在 Hexo 自动化部署上的实践
本文探讨了持续集成相关话题,将战略和战术比作抽象类和具体类,将面向对象设计映射到现实等级制度。重点讨论了DevOps概念,以及持续集成(CI)和持续部署(CD)在其中的关键性。详细介绍了通过Hexo和TravisCI实现自动化部署的实践,旨在提高代码质量和加速迭代过程。讨论了持续集成的概念和重要性,以及通过TravisCI配置和关联Github实现自动化构建的流程。
开发工具
在 Sublime Text3 下安装 Package Control
Sublime Text是一款优秀的代码编辑器,具有强大的扩展性,支持通过插件扩展功能。安装Package Control是扩展功能的关键,而在Sublime Text2和Sublime Text3中安装Package Control的方式有所不同。在Sublime Text2中可通过控制台输入特定代码完成,而在Sublime Text3中则需要使用更新后的代码。当自动安装出现问题时,也可手动下载安装Package Control。通过这些步骤,用户可以轻松在Sublime Text中享受更多功能。1