Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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_Github_Git Rebase - Fatal编程技术网

git清理历史的最佳实践是什么?

git清理历史的最佳实践是什么?,git,github,git-rebase,Git,Github,Git Rebase,在阅读git工作流时,我想知道重写历史是否合适。我的工作流程,以及我想象中的许多其他工作流程,是这样的: 以Github存储库为例,我们称之为rep1 做一个叉子,那就好了 git在本地克隆它以进行工作,这就是rep3 进行更改,提交给rep3 一旦我完成了,在做公关之前,推到rep2并征求其他人的反馈 当我收到反馈时,似乎我想做一些重定基址和压缩,因为反馈通常是一些次要的事情,比如重新编写评论或本来应该有所不同的事情,不值得他们自己去做 但是从文档来看,似乎我不应该在rep2上更改历史记录

在阅读git工作流时,我想知道重写历史是否合适。我的工作流程,以及我想象中的许多其他工作流程,是这样的:

  • 以Github存储库为例,我们称之为rep1
  • 做一个叉子,那就好了
  • git在本地克隆它以进行工作,这就是rep3
  • 进行更改,提交给rep3
  • 一旦我完成了,在做公关之前,推到rep2并征求其他人的反馈
当我收到反馈时,似乎我想做一些重定基址和压缩,因为反馈通常是一些次要的事情,比如重新编写评论或本来应该有所不同的事情,不值得他们自己去做


但是从文档来看,似乎我不应该在rep2上更改历史记录,事实上,类似于ammend的东西在这种情况下不起作用。我的工作流程是错误的,还是我误解了那些关于改变历史的警告

关于
重设基础的规则如下:您应该只重设本地分支的基础一旦分支是任何人都可以抓住的公共分支,您就不应该再次重设此分支的基础,否则您可能会破坏已克隆此分支的所有其他回购

如果出于某种原因,您决定
rebase
public(推送分支),您必须确保拉取此分支的所有用户都知道您的
rebase


您可以使用git
pre-rebase
hook来检查它,以拒绝rebase,或者在这种情况下显示警告或错误

一般经验法则从不重写已发布的历史记录。可能有人已经收到了你的承诺;如果你重写了历史,那些人一旦翻出重写的历史就会陷入麻烦

不那么严格的经验法则:在某些情况下,如果您完全确定自己是唯一一个在该分支上工作的人,那么重写已发布的历史记录可能是可以的

我个人认为,在GITHUB存储库的iNviDual分支中重写已被推送的特征分支的历史是可以的,因为我不希望其他人在该分支上工作。不过,这只是个人意见