我们的团队最近迁移到git。
我们的生产Web应用程序服务器对代码进行了一些小改动
我认为,我们不能在服务器回购中提交它们。
当我们svn update
合并已更改的文件或未合并时。现在
git stash; git pull; git stash pop
为我做了诀窍
如何在git stash pop
导致冲突时自动检测这些案例
打破生产工作副本?
我想发送邮件手动解决这些案例
> 之前 ,如be advised, pull cancelled (conflicts)
答案 0 :(得分:5)
我不想承担在生产服务器上发生合并冲突的风险。这听起来对我来说都是错的。
从您的帖子中,我可以推断您在生产中遇到无法在测试/分期中重现的问题。为了帮助检测这些,您在应用程序中添加了其他工具。这是一种常见的方法,尽管你应该尝试在Q& A中重现失败(通常它在长期利益方面值得初见)。
我要推断的下一件事是你直接在生产服务器上操作代码。你永远不应该这样做。您已经在使用git,它为您提供了很好的灵活性,可以管理您的问题,为您的问题提供更智能的解决方案。 这就是我想要的:
您是否也不想“产品化”您添加的其他日志记录,这也是您的非功能性需求的一部分。
答案 1 :(得分:2)
我宁愿:
最好是推送到bare repo with a post-update hook,并在单独的Git仓库中工作,在那里你可以做那些你需要的东西。
有人说,我宁愿尝试解决临时分支中的任何冲突(来自git stash man page)
git branch <branchname> [<stash>]
从最初创建
<branchname>
的提交开始创建并签出名为<stash>
的新分支,将<stash>
中记录的更改应用于新的工作树和索引。
如果成功,并且<stash>
是stash@{<revision>}
形式的引用,则会删除<stash>
。如果没有给出<stash>
,则应用最新的。{/ p>如果运行git stash save的分支已经发生了足够的变化,git stash apply因冲突而失败,那么这很有用。由于存储是在运行git stash时
HEAD
的提交之上应用的,因此它会恢复原始存储状态而不会发生冲突。
一旦冲突得到解决,该分支就可以合并回主人。