V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
Ploter
V2EX  ›  git

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

  •  
  •   Ploter · 139 天前 · 1288 次点击
    这是一个创建于 139 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  139 天前
    git stash push -m "保存未提交的更改"
    git fetch origin
    git reset --hard origin/main
    git stash pop
    
    3 条回复    2024-07-08 13:30:18 +08:00
    msg7086
        1
    msg7086  
       139 天前   ❤️ 1
    你同步的时候包括了.git 吗?如果包括了的话,三台机器的当前状态应该是完全相同的。
    如果不包括.git ,那就只有 working directory 里的文件是相同的,另外几台机器需要手动 git fetch 再 git reset HEAD 应该就行了。
    msg7086
        2
    msg7086  
       139 天前   ❤️ 1
    说错了,应该是 git fetch 再 git reset origin/main 。
    Ploter
        3
    Ploter  
    OP
       139 天前
    @msg7086 #2 感谢老哥回复🙏,成功解决了。
    不过我 Syncthing 同步的是 git 仓库下的子文件夹 src/content/blog/,先 git fetch 再 git reset origin/main 的话,同步文件夹之外的修改在设备 B 就丢失了,产生了新的预期之外的修改。
    据此再问 ChatGPT 就解决了,要配合 git stash 用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1370 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 17:23 · PVG 01:23 · LAX 09:23 · JFK 12:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.