Git 新分支而不是推送
我在我的主要分支中进行了一些本地更改,并承诺了,但没有推动。现在,我改变了主意,我想创建一个新的测试分支,接受所有将被推送的更改,将它们提交到新分支并从主分支中删除 因此(不是真实输出,手写): “前方”的更改仅指Git 新分支而不是推送,git,Git,我在我的主要分支中进行了一些本地更改,并承诺了,但没有推动。现在,我改变了主意,我想创建一个新的测试分支,接受所有将被推送的更改,将它们提交到新分支并从主分支中删除 因此(不是真实输出,手写): “前方”的更改仅指origin/main和main之间的更改。因此,要将main重置为其旧状态,只需git reset--hard origin/main。现在的完整设置是: git checkout main git reset --hard origin/main …就这样。请注意,“现在做什么”
origin/main
和main
之间的更改。因此,要将main
重置为其旧状态,只需git reset--hard origin/main
。现在的完整设置是:
git checkout main
git reset --hard origin/main
…就这样。请注意,“现在做什么”的第一步已经由git checkout-b test
完成,因此剩下的唯一步骤是将main
恢复到origin/main
注意:这假设更改已提交,如问题中所述。在未提交更改的签出中运行git reset--hard
,将使您丢失更改。如果不确定更改是否已提交,请运行git status
;成功提交后,它将告诉您没有要提交的内容
前面的更改只是origin/main
和main
之间的更改。因此,要将main
重置为其旧状态,只需git reset--hard origin/main
。现在的完整设置是:
git checkout main
git reset --hard origin/main
…就这样。请注意,“现在做什么”的第一步已经由git checkout-b test
完成,因此剩下的唯一步骤是将main
恢复到origin/main
注意:这假设更改已提交,如问题中所述。在未提交更改的签出中运行
git reset--hard
,将使您丢失更改。如果不确定更改是否已提交,请运行git status
;成功提交后,它将告诉您没有要提交的内容。
我错过了一些东西。。。我做了重设--hard
,它清除了我处理的所有文件,并且没有提交它们@雅库姆。别忘了您在main
分支上,现在按照您的请求恢复到提交之前的状态。要返回到您的文件,请发出git checkout test
。我没有提交test
分支。幸运的是我有后援。记住孩子们,提交你的更改并做备份。@JakubM。哎哟-很高兴你恢复了你的文件@雅库姆。好吧,我的回答是在问题中提到的文件已被认真承诺的前提下写的!除了在问题中明确说明之外,在使用git时,经常建议提交。我觉得我错过了一些东西。。。我做了重设--hard
,它清除了我处理的所有文件,并且没有提交它们@雅库姆。别忘了您在main
分支上,现在按照您的请求恢复到提交之前的状态。要返回到您的文件,请发出git checkout test
。我没有提交test
分支。幸运的是我有后援。记住孩子们,提交你的更改并做备份。@JakubM。哎哟-很高兴你恢复了你的文件@雅库姆。好吧,我的回答是在问题中提到的文件已被认真承诺的前提下写的!除了在问题中明确说明之外,在使用git时,通常还建议提交。