Git工作流问题:git push,git reset --soft HEAD~1以及如何将更新的代码推送到新分支?

问题描述 投票:1回答:1

我对git工作流程很陌生。我弄得一团糟,我需要帮助解开它。这就是发生的事情:

  • 我把文件推到了回购
  • 组件方向发生了巨大的变化,因此我决定不再希望将该提交显示在repo中,而是继续对其进行更改
  • 我应该做更多的研究并输入git revert,但是我做了git reset --soft HEAD~1
  • 我也没有暂存所有文件(再次不知道使用--mixed命令)
  • 现在我的工作区域中有文件,但提交仍在回购中

我想做什么:

  • 从repo中完全删除该提交(我现在收到合并冲突)
  • 创建一个名为feature的新分支
  • 并将新的更新文件推送到该分支

任何帮助都非常感激。

git github
1个回答
0
投票

当你做git reset时,你只在本地解除提交。您还需要在远程进行相同的更改。

  1. 假设您已经完成了git reset --soft HEAD~1,请使用git stash取消更改并清除您的工作流程。
  2. 使用--force-with-lease标志推送到分支。这将强制推送git reset命令并撤消远程提交。

警告:使用--force-with-lease标志时要非常小心,否则可能会丢失更改。如果出现问题,备份代码总是一个好主意。

  1. 创建一个新分支并取消暂停您的更改。您现在可以在新分支中进行更改。

编辑1:只有在分支上允许强制推送时才会起作用。如果没有,git revert是一个选项。

编辑2:正如philippe --force-with-lease指出的更好的方法。

有关更多信息--force-with-lease here

© www.soinside.com 2019 - 2024. All rights reserved.