如何在没有历史的情况下推动新分公司的发展

我有两个不相关的分支 git repo,master 和 configs。 我已经创建了配置,清除了所有文件,然后只放在配置文件中。 现在我想把这个推到远程回购,但因为它是新的,空的分支(没有我所有的变化和原始分支的旧版本的日志)。

我怎样才能清除所有的历史,并推动它?

98636 次浏览

清除所有文件并不能消除历史记录。您需要首先创建一个没有历史记录的分支,然后添加配置文件。这些天,git checkout有一个 --orphan选项,使一个分支没有历史。下面是关于 --orphan选项的信息:

--孤儿 < new _ Branch >

创建一个新的孤立分支,命名为 < new _ Branch > ,从 < start _ point > 开始并切换到它。在这个新分支上进行的第一次提交将没有父级,它将是一个与所有其他分支和提交完全断开的新历史记录的根。

索引和工作树的调整就像您以前运行过“ git checkout < start _ point >”一样。这允许您通过轻松地运行“ git commit-a”来启动一个新的历史记录,该历史记录类似于 < start _ point > 的一组路径以使根提交。

当您希望通过提交发布树而不暴露其完整历史记录时,这可能非常有用。您可能希望这样做来发布一个项目的开放源代码分支,该分支的当前树是“干净的”,但其完整历史包含专有代码或其他受限代码。

如果您想启动一个断开连接的历史记录,记录一组完全不同于 < start _ point > 的路径,那么您应该在运行“ git rm-rf”创建孤立分支之后立即清除索引和工作树从工作树的顶层。之后,您将准备好准备新文件,重新填充工作树,从其他地方复制它们,提取 tarball,等等。

这里有一个到 退房文档的链接。你也可以运行 git help checkout

一旦您创建了没有历史记录的分支,那么当您将其推送到服务器时,它也不会有历史记录。FWIW,它帮助我认为 git push是“使远程分支看起来与我的本地分支相同”。因此,如果你有历史,并推动,它将有历史。如果你没有,那么被推动的树枝就不会。

我需要这样做,以发送一个自由职业者一些代码,而不分享私人信息或删除我的历史。

如果你们中的任何人正在使用 SourceTree,这就是我如何设法做到这一点。如果我做错了什么或忘记了什么,请让我知道,因为我对源代码管理非常不熟悉。

  1. 我转到源代码树上的终端按钮。
  2. 我使用以下命令创建了一个新的“孤儿”分支: “ Git checkout ——孤儿保洁公司”我在那里的分公司名是“保洁公司”
  3. 我关闭了终端,看到我的提交日志被清除,因为我在一个新的孤儿分支中。我上演了所有的源代码并提交了更改。
  4. 我在存储库 > 添加远程存储库或存储库 > 存储库设置 > 添加中设置我的 bitbucket 存储库。
  5. 我关上门,点击了按钮
  6. 我选择了我的新的‘干净’分支说好。

当我检查 bitbucket 时,它似乎已经工作了,并且丢弃了我的提交历史。

希望这能帮到别人。

我怎样才能清除所有的历史,并推动它?

git checkout --orphan <name_you_choose_for_orphan_branch>
git commit

然后你就可以运行你的

git push <remote-name> <branch-name>


参考这个一行程序

git checkout --orphan <name_you_choose_for_orphan_branch>
git rm . -r -f