You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需重新克隆,实现本地与服务器Git仓库同步及推送的方案问询

解决方案:同步本地Git仓库与服务器裸仓库(无需重新克隆)

步骤1:将服务器工作目录的现有变更提交到裸仓库

服务器工作目录(/root/server/resources)的修改未纳入裸仓库,需先完成同步:

  • 进入服务器工作目录:
    cd /root/server/resources
    
  • 临时关联到裸仓库:
    git init
    git remote add origin /root/git/server.git
    
  • 提交所有变更到本地临时仓库:
    git add .
    git commit -m "Sync server working directory changes to bare repo"
    
  • 推送到服务器裸仓库的master分支:
    git push origin master
    
  • (可选)删除工作目录下的临时.git文件夹,避免误操作:
    rm -rf .git
    

步骤2:本地仓库同步服务器裸仓库内容

本地已有仓库,无需重新克隆,通过以下步骤同步:

  • 添加服务器裸仓库作为本地远程仓库(替换user@server-ip为实际服务器登录信息):
    git remote add server ssh://user@server-ip/root/git/server.git
    
  • 拉取服务器master分支的内容到本地:
    git pull server master
    
    • 若本地有未提交的变更,先执行git stash暂存或提交后再拉取
    • 出现冲突时,手动解决冲突后提交变更

步骤3:验证双向推送功能

  • 本地修改文件后,提交并推送到服务器:
    git add .
    git commit -m "Test local push to server"
    git push server master
    
    服务器的post-receive钩子会自动将变更同步到/root/server/resources工作目录
  • 若服务器工作目录后续有修改,重复步骤1提交到裸仓库,本地再拉取即可同步

注意事项

  • 确保post-receive钩子有执行权限:
    chmod +x /root/git/server.git/hooks/post-receive
    
  • 尽量避免直接修改服务器工作目录的文件,通过Git推送同步,保持仓库一致性
  • 其他开发者只需在本地执行步骤2添加服务器远程,即可参与推送

内容的提问来源于stack exchange,提问作者Alireza Behnamnik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 05:08:25