我有一个用于服务器开发的克隆,另一个用于客户端开发。这两种材料最终会使它成为同一个分支,但是我想要同步它们,我希望它能够执行合并,好像我已经提交了推送和拉动,但我想在没有它的情况下这样做。
我能够使用我编写的这个脚本制作补丁:
git diff --cached
git diff
在服务器上,但将其应用于客户端很多更难。
我已经尝试过Unix patch
命令,出于某种原因,它一直在问我要修补哪些文件,就像我找不到它们一样。 (是的,他们在那里)我已经尝试了
git apply -3 patch.patch
但是这会产生很多错误,例如"有冲突" (不进行任何更改)和"与索引"不匹配。它似乎甚至没有尝试修补另一半文件。
Stashing,然后应用补丁,然后从存储中弹出不起作用,因为unstashing拒绝合并。
答案 0 :(得分:1)
看起来这样做 out 拉动不起作用 - 我还没有找到方便安全地做到这一点的方法。但是,我提交的问题是我不想像垃圾一样垃圾邮件git日志:
同步到客户端
同步回服务器
糟糕!同步我忘记了服务器的东西!
等
但我可以通过提交,然后从远程回购中提取来避免这一切。最后,我不必推送这些提交,因为我会使用reset从本地仓库中删除所有提交,然后,在工作目录中进行所有更改后,执行适当的提交并推送它。 / p>
他们很多。
以下示例假设您有2个克隆;一个名为"客户"和另一个"服务器"。
git pull myserver-repo mybranch
。git log
。在第一次提交之前找到提交 2.将其哈希复制到剪贴板。git reset <hash you copied in 5>
。git stash save "delete_me"
。