【问题标题】:Visual studio code: automatic commit gitVisual Studio 代码:自动提交 git
【发布时间】:2019-05-26 03:26:51
【问题描述】:

很多时候,我忘记将我的编辑提交到我的 git。如果我关闭了 VSCode,我就不能再使用 ctrl-Z 了。 因为,我已经设置了 git,我想我可以每 30 秒左右使用一次自动提交之类的东西。

我看到这个extensionbtu ti 不是开源的,所以我不想使用它。我还找到了this,但我的编程技能还不足以实现它。

我也想知道以这种方式使用 git 是否是一个不错的选择,因为 git 文件夹可能很快就会变得非常沉重(我的 git 只是本地的,所以我可以处理几个 gigab)

那么实现我想做的最好的方法是什么?

【问题讨论】:

    标签: git visual-studio-code backup revision-history


    【解决方案1】:

    我也想知道以这种方式使用git是否是一个不错的选择

    不,这会污染你的提交历史。

    使用扩展名“Local history”是一种更好的方法,并且不依赖于您的 VCS。
    (并且是开源的:github.com/zabel-xyz/local-history

    每次修改文件时,旧内容的副本都会保存在本地历史记录中。
    您可以随时将文件与历史记录中的任何旧版本进行比较。
    当您意外更改或删除文件时,它可以为您提供帮助。
    当您的工作区出现灾难性问题时,历史记录还可以帮助您。

    【讨论】:

    • 非常感谢,这是一个更好的选择!唯一的问题是本地历史记录仅在我保存文件时保存,而不是在我在 VScode 中进行编辑时保存。我见过.saveDelay,但它只适用于save
    • @MagTun 是的,这就是您需要激活 gile auto.save 的原因:code.visualstudio.com/docs/editor/codebasics#_save-auto-save。这样,您甚至不必键入 CTRL+S
    【解决方案2】:

    我是auto-git 的开发者。它还不是开源的,但将来会。它会在指定的时间间隔内检测到所有更改,并使用静态 Auto-Git 提交将其推送到预定义的远程。我仍在努力改进扩展程序的功能。

    注意:由于发布者变更,OT中的扩展链接不再起作用。请改用auto-git。谢谢。

    【讨论】:

    • 引发我的 VSC 版本不兼容的错误...通过商店或手动安装时。
    【解决方案3】:

    我知道我可能是个异类,但我始终无法坚持使用 Git,但仍将其用作我的 #1 版本控制/核心 repo 解决方案。

    使用 Git 作为项目的单一真实来源的界面和体验是无与伦比的。

    也就是说,我个人使用非常简单的 Crontab 解决方案来自动推送 'Auto-Commits' 每 20 分钟。每次自动推送的注释都是相同的:“自动提交”。

    这很有效(对我来说),特别是在我是单独/主要贡献者的项目上。

    我更喜欢使用 VSCode 的 SSH Remote 选项直接在临时服务器上工作,因此将 Git 设置为每 20 分钟自动备份一次项目可以保护我的项目文件和历史记录。

    这个解决方案的美妙之处在于,如果进行了更改,Git 只会推送新的提交。此外,我仍然可以随时手动推送新提交并轻松找到那些“里程碑”,因为自动提交都标记为“自动提交”。

    要设置类似的工作流程:(仅限 Linux):

    • 重要提示:在完成以下步骤之前设置 Git 凭据存储并推送手动提交。例如,在你的 git 仓库所在的项目文件夹中运行它:git config credential.helper store,然后推送一个提交。这会存储您的凭据,因此 Cron 作业不必登录。 (它不能,因为它在后台运行)。
    • 然后,在终端中运行这个命令:crontab -e
    • 如果出现提示,请选择 Nano 编辑器(用户友好)或 Vim(如果您愿意)。将下面的行添加到文件的底部。
    • */20 * * * * cd /path/to/project/git/location && git add . && git commit -m "Automatic Commit" && git push origin master

    您现在将在 Git 存储库中看到自动提交(但仅在项目发生更改的情况下!)。

    欢迎来到未来。使用 Git 的地方完全错误……但感觉很好。

    【讨论】:

      【解决方案4】:

      致新用户。 我创建了这个 bat 文件。

      cd "path/to/your/git-repo/folder"
      git stage .
      git commit -m "Message to Commit"
      git push origin master
      

      运行此 bat 文件将暂存、提交和推送所有更改。

      这还不够。所以我更新它以递归运行。

      @echo off
      :TOP
      cd "C:/Users/ongsh/Google Drive/EduFun/EduFun"
      git stage .
      git commit -m "Auto Commit"
      git push origin master
      goto :TOP
      

      现在,无论您何时运行该文件,您的更改都会自动更新。

      【讨论】:

        猜你喜欢
        • 2018-05-30
        • 2019-03-05
        • 2022-01-16
        • 2016-04-08
        • 2017-04-20
        • 2016-11-07
        • 2016-01-05
        • 1970-01-01
        • 2019-03-26
        相关资源
        最近更新 更多