如何推动没有历史的新分支
我有两个不相关的分支,主和configurationgit回购。 我创build了configuration文件,清除了所有文件,然后只放在configuration文件中。 现在我想推远程回购,但因为它是新的空分支(没有我所有的更改日志和原分支的旧版本)。
我怎样才能清除所有的历史和推动呢?
清除所有的文件并没有摆脱历史。 您需要先创build一个没有历史logging的分支,然后添加您的configuration文件。 这些天, git checkout
有一个--orphan
选项,使得没有历史logging的分支。 以下是关于--orphan
选项的信息:
–orp <new_branch>
创build一个名为<new_branch>的新的孤立分支,从<start_point>开始并切换到它。 在这个新的分支上做的第一次提交将没有父母,这将是一个新的历史与所有其他分支和提交完全断开的根源。
索引和工作树被调整,就像以前运行“git checkout <start_point>”一样。 这使您可以通过轻松运行“git commit -a”来创build一个新的历史logging来logging一组类似于<start_point>的path,以便进行根提交。
如果您想从提交中发布树而不公开其完整的历史logging,则可以使用此function。 您可能想要这样做来发布项目的开源分支,该分支的当前树是“干净”的,但是其完整历史logging包含专有代码或其他devise代码。
如果你想启动一个断开的历史logging,logging一组完全不同于<start_point>的path,那么你应该在创build孤立分支之后立即清除索引和工作树,方法是运行“git rm -rf”。 “ 从工作树的顶层。 之后,您将准备好准备新文件,重新填充工作树,从别处复制它们,提取tarball等。
这是一个链接到结帐的文档。 你也可以运行git help checkout
。
一旦创build了没有历史logging的分支,那么当你将其推送到服务器时,它也不会有这个历史logging。 FWIW,它可以帮助我把git push
当成“让远程分支看起来和我的本地分支一样”。 所以,如果你有历史,推动,它将有历史。 如果你不这样做,那么推送的分支将不会。
我需要这样做,发送一个自由职业者一些代码,而不共享私人信息或删除我的历史。
如果你们中有人使用SourceTree,这是我设法做到这一点。 请让我知道,如果我做错了什么或忘记了一些东西,因为我对源代码pipe理很不熟悉。
- 我去了源码树上的terminalbutton。
- 我使用命令'git checkout –orphan clean-ver'创build了一个新的'孤立'分支,其中clean-ver是我的分支名称
- 我closures了terminal,看到我的提交日志被清除,因为我在一个新的孤儿分支。 我演示了我的所有源代码并进行了修改。
- 我设置我的bitbucket存储库在任何存储库>添加远程或存储库>存储库设置>添加。
- 我closures了,然后点击button
- 我select了我的新“清洁版”分支。
当我检查bitbucket,似乎这似乎已经工作,并放弃了我的提交历史。
希望这可以帮助别人。
我怎样才能清除所有的历史和推动呢?
git checkout --orphan <name_you_choose_for_orphan_branch> git commit
那么你可以运行你的
git push <remote-name> <branch-name>
比照 这是一个class轮