update at 2024-05-30 10:51:57
parent
784d44c9b8
commit
9c63fd04de
|
@ -183,6 +183,62 @@ gg () {
|
|||
|
||||
将此函数放到里所使用的 shell 的 rc 文件里,这样每次在 shell 里执行 `gg` 就是调用此函数实现一键自动 commit 并 push 所有改动到 Git 仓库,让改动变得非常方便。
|
||||
|
||||
我本人更懒,命令都不用执行,直接快捷键自动提交。因为我用的 Neovim 编辑器,可以自己配自定义快捷键和相应的后台脚本操作,下面分享我的配置(基于 LazyVim):
|
||||
|
||||
```lua
|
||||
local Util = require("lazyvim.util")
|
||||
local map = Util.safe_keymap_set
|
||||
|
||||
---@param command string Command to run
|
||||
---@param args? string[] List of arguments to pass
|
||||
run = function(command, args)
|
||||
local Job = require("plenary.job")
|
||||
local absolute_path = vim.fn.expand("%:p")
|
||||
local cwd = string.match(absolute_path, "(.+)/[^/]+$")
|
||||
Job:new({
|
||||
command = command,
|
||||
args = args,
|
||||
cwd = cwd,
|
||||
on_exit = function(job)
|
||||
local result = job:stderr_result()
|
||||
if next(result) == nil then
|
||||
result = job:result()
|
||||
end
|
||||
if next(result) ~= nil then
|
||||
local msg = table.concat(result, "\n")
|
||||
if not vim.g.vscode then
|
||||
vim.notify(msg, vim.log.levels.INFO)
|
||||
end
|
||||
else
|
||||
if not vim.g.vscode then
|
||||
vim.notify("done", vim.log.levels.INFO)
|
||||
end
|
||||
end
|
||||
end,
|
||||
}):start()
|
||||
end
|
||||
|
||||
---@param script string Bash script to run
|
||||
run_script = function(script)
|
||||
return run("bash", { "-c", script })
|
||||
end
|
||||
|
||||
-- git
|
||||
local git_push = function()
|
||||
local git_push_script = [[
|
||||
git add -A
|
||||
msg="update at $(date '+%Y-%m-%d %H:%M:%S')"
|
||||
git commit --author="roc <roc@imroc.cc>" -m "$msg"
|
||||
git push
|
||||
]]
|
||||
run_script(git_push_script)
|
||||
end
|
||||
map("n", "<leader>gp", git_push, { desc = "Git Push" })
|
||||
map("n", "gp", git_push, { desc = "Git Push" })
|
||||
```
|
||||
|
||||
> `Normal` 模式下执行 `gp` 或 `<leader>gp` 就会自动提交并推送。
|
||||
|
||||
## 参考资料
|
||||
|
||||
* ArgoCD Automated Sync Policy: https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/
|
||||
|
|
Loading…
Reference in New Issue