
如果 Syncthing 同步的文件同时也在 git 仓库下时,会出现这种问题,设备 A 通过 git 上传到 GitHub ,并通过 syncthing 同步到设备 B 。但设备 B 也有相同的 git 仓库,就会出现下面的问题。
krdw@thinkpad:~/blog$ git status On branch main Your branch is behind 'origin/main' by 5 commits, and can be fast-forwarded. (use "git pull" to update your local branch) Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: src/content/blog/build-your-rss-flow.md Untracked files: (use "git add <file>..." to include in what will be committed) src/content/blog/building-homeserver-with-laptop-v2.md src/content/blog/file-sync-syncthing-tailscale.md no changes added to commit (use "git add" and/or "git commit -a") 此时 build-your-rss-flow 的修改和 file-sync-syncthing-tailscale 的新增都已经被设备 A 提交修改到 GitHub 上,building-homeserver-with-laptop-v2 的新增两台设备都没有进行提交。
请教一下各位大佬,在设备 B 我该如何操作呢?以保证和设备 A 相同,git 仓库同步为最新,且未提交更改的文件继续保留,因为设备 B 一删设备 A 也同步会被删。
git stash push -m "保存未提交的更改" git fetch origin git reset --hard origin/main git stash pop 1 msg7086 2024 年 7 月 8 日 你同步的时候包括了.git 吗?如果包括了的话,三台机器的当前状态应该是完全相同的。 如果不包括.git ,那就只有 working directory 里的文件是相同的,另外几台机器需要手动 git fetch 再 git reset HEAD 应该就行了。 |
2 msg7086 2024 年 7 月 8 日 说错了,应该是 git fetch 再 git reset origin/main 。 |