步骤

  1. 在 emacs 配置里面设置:(run-at-time "00:59" 3600 'org-save-all-org-buffers). 每一个小时将所有打开的 org mode buffer 保存一次

  2. 用一个脚本来 commit org 的仓库:

    #!/bin/sh
    # Add org file changes to the repository
    REPOS="org"
    
    for REPO in $REPOS
    do
        echo "Repository: $REPO"
        cd ~/Documents/$REPO
        # Remove deleted files
        git ls-files --deleted -z | xargs -0 git rm >/dev/null 2>&1
        # Add new files
        git add . >/dev/null 2>&1
        git commit -m "$(date)"
    done
    
  3. 另外一个脚本用于将 org repo push 的远程 github:

    #!/bin/sh
    # push org repo into github
    cd ~/Documents/org/
    git push -v origin refs/heads/master\:refs/heads/master
    
  4. 使用 crontab 来定时执行脚本:

    0 * * * * ~/scripts/org-git-sync.sh >/dev/null
    0 3 * * * ~/scripts/org-git-push.sh >/dev/null
    

    我们小时 commit 一次,然后每天一次将 repo push 到远程

参考