Visual studio代码:自动提交git

Visual studio code: automatic commit git

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

我看过这个 extension btu ti's not open source, so I don't want to use it. I also found this 但我的编程技能还不够好,无法实现它。

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

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

2018:

I also wonder if using git in this way is a good option

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

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

Every time you modify a file, a copy of the old contents is kept in the local history.
At any time, you can compare a file with any older version from the history.
It can help you out when you change or delete a file by accident.
The history can also help you out when your workspace has a catastrophic problem.


2022:不需要使用 VSCode 1.66(2022 年 3 月)进行扩展。
VSCode 现在包括:

Local history

Local history of files is now available from the Timeline view. Depending on the configured settings, every time you save an editor, a new entry is added to the list:

Each local history entry contains the full contents of the file at the time the entry was created and in certain cases can provide more semantic information (for example, indicate a refactoring).

From an entry you can:

  • Compare the changes to the local file or previous entry.
  • Restore the contents.
  • Delete or rename the entry.

There are new global commands to work with local history:

  • workbench.action.localHistory.create - Create a new history entry for the active file with a custom name.
  • workbench.action.localHistory.deleteAll - Delete all history entries across all files.
  • workbench.action.localHistory.restoreViaPicker - Find a history entry to restore across all files.

还有一些新设置可用于本地历史记录:

  • workbench.localHistory.enabled - Enable or disable local history (default: true).
  • workbench.localHistory.maxFileSize - File size limit when creating a local history entry (default: 256 KB).
  • workbench.localHistory.maxFileEntries - Local history entries limit per file (default: 50).
  • workbench.localHistory.exclude - Glob patterns for excluding certain files from local history.
  • workbench.localHistory.mergeWindow - Interval in seconds during which the last entry in local file history is replaced with the entry that is being added (default 10s).

A new filter action in the Timeline view toolbar allows you to enable or disable individual providers:

注意:本地历史条目存储在不同的位置,具体取决于您对 VS Code 的使用。

  • When opening local files, the entries are persisted in the local user data folder and
  • when opening remote files, they will be stored on the remote user data folder.
  • When no file system is available (for example, in certain cases when using VS Code for Web), entries are stored into IndexedDB.

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

注意:OT 中扩展的 link 不再有效,因为发布者已更改。请改用 auto-git。谢谢。

我知道我可能是个异类,但我很难坚持 Git 但仍将其用作我的 #1 版本控制/核心回购解决方案。

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

也就是说,我个人使用了一个非常简单的Crontab 解决方案 来自动推送'Auto-Commits' 每20 分钟。每次自动推送的评论都是一样的:'Automatic Commit.'

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

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

此解决方案的美妙之处在于 Git 仅在 已进行更改后才会推送新提交 。此外,我仍然可以随时手动推送新提交并轻松找到那些 'milestones,' 因为自动提交都标记为 'Automatic Commit.'

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

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

您现在会在 Git 存储库中看到自动提交(但仅当对项目进行了更改时!)。

欢迎来到未来。其中 Git 完全用错了……不过感觉还不错。

致新用户。 我创建了这个 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

现在,每当您 运行 文件时,您的更改都会自动更新。