Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
完全替换应用程序时的Git最佳实践_Git - Fatal编程技术网

完全替换应用程序时的Git最佳实践

完全替换应用程序时的Git最佳实践,git,Git,我们使用GIT作为版本控制,我不是这方面的专家。最近,另一位开发人员要求我删除存储库中的所有内容,并将其保留为空白,以便他可以上载新的应用程序(所谓新应用程序,我的意思是解决方案和代码不同,但应用程序的想法是相同的,它将执行完全相同的操作,只是得到了重建),我告诉他要删除所有文件,提交并推送,然后添加新应用程序,再次提交并推送,这样我们就可以了解旧应用程序的历史记录,但我想知道我所做的是否正确?或者最好是归档存储库并创建一个新的裸存储库,我在上面读到GIT有一些孤立的分支,但我认为这不是我们的情

我们使用GIT作为版本控制,我不是这方面的专家。最近,另一位开发人员要求我删除存储库中的所有内容,并将其保留为空白,以便他可以上载新的应用程序(所谓新应用程序,我的意思是解决方案和代码不同,但应用程序的想法是相同的,它将执行完全相同的操作,只是得到了重建),我告诉他要删除所有文件,提交并推送,然后添加新应用程序,再次提交并推送,这样我们就可以了解旧应用程序的历史记录,但我想知道我所做的是否正确?或者最好是归档存储库并创建一个新的裸存储库,我在上面读到GIT有一些孤立的分支,但我认为这不是我们的情况,因为在旧分支上不会有更多的开发、bug修复等,那么您对如何做或现有的最佳实践有什么想法,我们不知道,提前感谢您的回复和评论。

如果您的新开发树与旧开发树无关,我认为更好的方法就是创建新的存储库。或者,如果由于某种原因不能接受,您可以创建标记作为新的初始点并从那里开始(可能不是个好主意)。删除历史和所有数据是不好的,要真正从git中删除所有内容非常困难

他可以上传一个与旧应用程序无关的新应用程序 一个

如果新应用程序与旧应用程序无关,那么混合历史记录不是一个好主意

因此,我们可以了解旧应用程序的历史记录

如果您需要旧应用程序的历史记录,只需将其安全地保存在旧存储库中即可
并在新存储库中创建新应用程序。

如果要使用公共存储库(即,不将其设置为私有),我看不出为应用程序创建新存储库的问题

这样,旧版本仍然存在,新应用程序有一个干净的存储库

如果你真的想在回购协议中替换当前项目,有可能的方法可以做到这一点。我已经附加了一个链接到另一个堆栈溢出问题,在那里他们可以更详细地了解这个问题

尽管这一步特别指的是Android Studio项目,但这些步骤仍然适用于您

编辑(在看到问题的更新后):


听起来您主要是在修改相同文件中的代码。如果是这样的话,那么为什么不让它成为一个新的提交,覆盖文件的旧内容,但保留提交历史?

我会创建一个孤立分支,删除所有以前的代码并添加新代码。然后它将是同一个repo上的两个分支:approachA,approachB。

如果它是一个新的应用程序,它应该位于一个新的git存储库中。我不认为劫持存储库有什么好处,但也有一些缺点,比如混合历史记录、更大的存储库大小等等。应用程序在理论上是一样的,新应用程序的意思是,一个完全不同的解决方案,从头开始,代码本身是新的,但应用程序的思想是一样的。这是可以接受的,我只是想出了这个答案,因为我认为最好保存发生的事情的历史记录。如果可以保存历史记录总是更好的,而且成本也不高。我编辑了我的帖子,我的意思是,应用程序代码是新的,它做的事情与旧应用程序相同,但它根本没有相同的代码,我为糟糕的措辞道歉抱歉,我错了,我把它与旧的无关,选择了糟糕的措辞,我编辑了我的帖子,新的应用我的意思是,一个完全不同的解决方案,从头开始,代码本身是新的,但应用的想法是一样的。就我在那篇帖子上所理解的,基本上就是我告诉其他开发人员要做的事情,删除文件,提交,然后添加新文件,提交和推送如果这是你想要采取的方法,那么我会说你有正确的心态和方法。就我个人而言,我会创建一个新的存储库来将新应用程序上载到。即使应用程序也这样做?只有代码是新的?我在原始回复中添加了一个编辑。我想我很难理解项目结构的所有变化。文件被重命名了吗?项目结构重组了吗?如果您刚刚对文件中的代码进行了更改,然后提交新的更改?是的,对不起,我编辑了我的帖子,当我说应用程序与旧的应用程序无关时,我的措辞很糟糕,我的意思是代码本身与新的代码、结构、解决方案无关,但应用程序也会这样做。即使没有实际需要对旧的应用程序代码进行更改,您也可以将其保留为“历史目的”。。。。然后你可以在你喜欢的时候把树枝扔掉。这是你的回购协议,你可以随心所欲。