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
现在,每当您 运行 文件时,您的更改都会自动更新。
很多次,我忘记将我的编辑提交到 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
现在,每当您 运行 文件时,您的更改都会自动更新。