Git是我一直有困难理解的东西。我在做个人项目时经常犯的一个常见错误是为了'掌握'而不是'dev'。如何使用GIT将'master'分支完全重置为'dev'的内容?
我想知道如何使用Git'重置'主分支。具体来说,如果'master'通过一些提交次数超过'dev'分支,我该如何重置'master'到'dev'的内容。这假设不需要提交主文件。
谢谢。
Git是我一直有困难理解的东西。我在做个人项目时经常犯的一个常见错误是为了'掌握'而不是'dev'。如何使用GIT将'master'分支完全重置为'dev'的内容?
我想知道如何使用Git'重置'主分支。具体来说,如果'master'通过一些提交次数超过'dev'分支,我该如何重置'master'到'dev'的内容。这假设不需要提交主文件。
谢谢。
你在问如何“重置”主分支。好消息给你,
git checkout master
git reset --hard dev # loses commits on master
假设你在master分支上,这个命令将设置master分支来匹配dev分支。
git reset --hard dev
请注意,这将删除任何您在不包含在Dev分支的主分支已经承诺的工作。如果要保存在主分支中已更改的文件的状态,但要删除主服务器中的那些提交,可以运行此命令,该命令将重置提交到当前dev的状态,但不会删除您拥有的更改在本地制作文件。然后这些更改可以被提交。
git reset --soft dev
所以,如果真的没有需要掌握的提交,该git reset
答案是正确的(当然,假设你没有主推还)。
但是,你说:
一个常见的错误在个人项目上工作的时候,我经常做 被提交工作以“主人”,而不是“开发”。
如果是这样的话,为什么要丢掉您在master
上所做的承诺?我只想交换分支(如果master
严格提前dev
):
git checkout master
git branch temp
git reset --hard dev
git checkout dev
git reset --hard temp
git branch -d temp
主仅在GIT中的默认分支名(其实只是一个参考),为什么要提交给它打扰。您可以将其重命名为任何其他名称,并按照您的要求从任何开始指针创建一个名为主的新分支。