Syncthing 同步 git 仓库下的文件有问题,求大佬指教

70 天前
 Ploter

如果 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 也同步会被删。

1031 次点击
所在节点    git
3 条回复
msg7086
70 天前
你同步的时候包括了.git 吗?如果包括了的话,三台机器的当前状态应该是完全相同的。
如果不包括.git ,那就只有 working directory 里的文件是相同的,另外几台机器需要手动 git fetch 再 git reset HEAD 应该就行了。
msg7086
70 天前
说错了,应该是 git fetch 再 git reset origin/main 。
Ploter
70 天前
@msg7086 #2 感谢老哥回复🙏,成功解决了。
不过我 Syncthing 同步的是 git 仓库下的子文件夹 src/content/blog/,先 git fetch 再 git reset origin/main 的话,同步文件夹之外的修改在设备 B 就丢失了,产生了新的预期之外的修改。
据此再问 ChatGPT 就解决了,要配合 git stash 用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1055620

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX