2016-02-12 164 views
0

Git是我一直有困难理解的东西。我在做个人项目时经常犯的一个常见错误是为了'掌握'而不是'dev'。如何使用GIT将'master'分支完全重置为'dev'的内容?

我想知道如何使用Git'重置'主分支。具体来说,如果'master'通过一些提交次数超过'dev'分支,我该如何重置'master'到'dev'的内容。这假设不需要提交主文件。

谢谢。

回答

2

你在问如何“重置”主分支。好消息给你,

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

假设你在master分支上,这个命令将设置master分支来匹配dev分支。

git reset --hard dev 

请注意,这将删除任何您在不包含在Dev分支的主分支已经承诺的工作。如果要保存在主分支中已更改的文件的状态,但要删除主服务器中的那些提交,可以运行此命令,该命令将重置提交到当前dev的状态,但不会删除您拥有的更改在本地制作文件。然后这些更改可以被提交。

git reset --soft dev 
3

所以,如果真的没有需要掌握的提交,该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 
0

仅在GIT中的默认分支名(其实只是一个参考),为什么要提交给它打扰。您可以将其重命名为任何其他名称,并按照您的要求从任何开始指针创建一个名为的新分支。