上传未完成的作品

时间:2015-08-21 12:33:07

标签: git

我经常遇到这个问题(这个工作流有意义做python):

  1. 在变更中本地工作(通常只需几行)
  2. rsync到登台服务器
  3. 在那里测试
  4. 如果它不起作用,请转到步骤1
  5. 如果有效,提交,推送和入睡
  6. 注意:我真的不想承诺我的工作:它有几行,如果它在登台服务器上测试之前根本没有任何意义,我没有任何想法< / em>的

    我做第2步,我讨厌(rsync不是那么容易使用 - 时间戳,删除文件,权限和什么不是)因为git不允许我移动非承诺的工作。

    我知道我可以准备补丁或捆绑包,但这些不是正确的解决方案,因为这比执行rsync更复杂。如果除patchbundle之外没有其他选项,我会坚持使用rsync。

    有没有一种方法可以轻松地使用git来解决非承诺的工作?

    devel $ git upload # uploads non-committed work to the remote
    staging $ git download # downloads non-committed work from the remote
    

    我猜不是,但我不得不问......

    注意

    git stash接近我想要的东西,但是AFAIK不可能推出藏匿处。否则我会:

    devel $ git stash
    devel $ git push # push the stash stack (not really possible with git)
    staging $ git pull # get the stash stack (not really possible with git)
    staging $ git stash pop
    

3 个答案:

答案 0 :(得分:4)

您的问题似乎是一个对测试完全无用的开发环境。必须将每个微不足道的代码更改部署到登台服务器,即使在“在登台服务器上测试它之前根本没有任何意义,然后它也不应该转到登台服务器。” p>

尝试以一种可以在开发环境中测试代码的方式设置开发环境,并确保它至少在将其移动到另一台服务器之前起作用(无论您使用的是rsync,git,ftp) ,复制和粘贴或其他)。

只能使用您认为正在运行的代码来完成对登台环境的推送,以便可以在新环境中对其进行测试,并确保在将其部署到生产环境之前实际在那里工作环境。

允许您立即测试更改的开发环境在软件开发中具有重要价值。每次测试更改时,不仅仅需要花费一分钟的时间来调试部署时间(尽管即使这样也可以很快地弥补它)。它还可以提高您的注意力,因为编写代码和测试代码之间的时间更短。此外,它鼓励您更频繁地测试您的代码。从长远来看,花费几个小时来建立一个合适的开发环境确实是值得的。

答案 1 :(得分:2)

不,你不能用Git。 但是,当您正在探索新的解决方案而不是尝试在控制版本系统之外工作时,创建新分支可能更有意义。 然后我问你:为什么有人会在这样的控制系统之外工作?追踪错误和/或成功是不是很难?

答案 2 :(得分:1)

如果你想用git做这个,我可以看到两种不同的方法:

  • 存储你的“uncommited”(当你藏匿git实际创建一个提交时)改变并将存储推送到遥控器。请参阅this answer for details
  • 制作补丁并将其应用于服务器上。请参阅this answer

但我强烈建议您使用其他工具,甚至考虑让Vagrant在您的计算机上设置开发环境。