如何使用GIT完全重置';硕士';分支到'的内容;开发人员';?

如何使用GIT完全重置';硕士';分支到'的内容;开发人员';?,git,merge,commit,reset,Git,Merge,Commit,Reset,Git是我一直很难理解的东西。我在处理个人项目时经常犯的一个常见错误是将工作提交给“master”而不是“dev” 我想知道如何使用Git“重置”主分支。具体地说,如果“master”在“dev”分支之前有一定数量的提交,如何将“master”重置为“dev”的内容。这是假设不需要在master中提交 谢谢。您正在询问如何“重置”主分支。好消息, git checkout master git reset --hard dev # loses commits on master 您正在询问如何

Git是我一直很难理解的东西。我在处理个人项目时经常犯的一个常见错误是将工作提交给“master”而不是“dev”

我想知道如何使用Git“重置”主分支。具体地说,如果“master”在“dev”分支之前有一定数量的提交,如何将“master”重置为“dev”的内容。这是假设不需要在master中提交

谢谢。

您正在询问如何“重置”主分支。好消息,

git checkout master
git reset --hard dev # loses commits on master
您正在询问如何“重置”主分支。好消息,

git checkout master
git reset --hard dev # loses commits on master

假设您在主分支上,此命令将设置主分支以匹配开发分支

git reset --hard dev
请注意,这将删除您在主分支中提交的、未包含在开发分支中的任何工作。如果要保存已在主分支中更改的文件的状态,但在主分支中删除这些提交,则可以运行此命令,将提交重置为当前状态的dev,但不会删除您在本地对文件所做的更改。然后可以提交这些更改

git reset --soft dev

假设您在主分支上,此命令将设置主分支以匹配开发分支

git reset --hard dev
请注意,这将删除您在主分支中提交的、未包含在开发分支中的任何工作。如果要保存已在主分支中更改的文件的状态,但在主分支中删除这些提交,则可以运行此命令,将提交重置为当前状态的dev,但不会删除您在本地对文件所做的更改。然后可以提交这些更改

git reset --soft dev

因此,如果确实不需要master中的提交,那么
git reset
的答案是正确的(假设您还没有按下master)

然而,你说:

这是我在处理个人项目时经常犯的一个常见错误 正在将工作提交给“主”而不是“开发”

如果是这种情况,为什么要放弃您在
master
上所做的提交?我只想交换分支(如果
master
严格领先于
dev
):


因此,如果确实不需要master中的提交,那么
git reset
的答案是正确的(假设您还没有按下master)

然而,你说:

这是我在处理个人项目时经常犯的一个常见错误 正在将工作提交给“主”而不是“开发”

如果是这种情况,为什么要放弃您在
master
上所做的提交?我只想交换分支(如果
master
严格领先于
dev
):

master只是git中的默认分支名称(事实上,只是一个引用),为什么还要麻烦提交它呢。您可以将其重命名为任何其他名称,并根据需要从任何开始指针创建名为master的新分支

master只是git中的默认分支名称(事实上,只是一个引用),为什么还要麻烦提交它呢。您可以将其重命名为任何其他名称,并根据需要从任何开始指针创建名为master的新分支