4

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

我已经看到这个扩展btu ti 不是开源的,所以我不想使用它。我也发现了这一点,但我的编程技能不足以实现它。

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

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

4

4 回答 4

10

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

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

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

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

于 2018-12-28T09:31:56.780 回答
5

我知道我可能是一个异常值,但我一直致力于 Git 却仍然将它用作我的 #1 版本控制/核心 repo 解决方案,这很糟糕。

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

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

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

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

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

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

  • 重要提示:在完成以下步骤之前设置 Git 凭证存储并推送手动提交。例如,在您的 git repo 所在的项目文件夹中运行它: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的使用方式完全错误……但感觉很好。

于 2020-01-25T21:26:30.410 回答
1

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

注意:由于发布者变更,旧版中的扩展链接不再起作用。请改用自动git。谢谢你。

于 2019-01-03T11:26:43.250 回答
0

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

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

于 2020-06-28T11:09:24.207 回答