社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

Git-如何在错误的本地分支中撤消提交?

webworm • 6 年前 • 1729 次点击  

我的Git设置是这样的:我在本地的“功能”分支中工作,并在工作时提交对此分支的更改。当代码准备好后,我就合并到本地的“开发”分支中。然后,我将本地“开发”分支中的更改推送到远程“开发”分支。

我对一个文件做了一些更改,并提交了它们,但没有意识到我是在本地的“开发”分支上,而不是在我的“功能”分支上。在将“开发”分支推到远程“开发”分支之前,我意识到了自己的错误,因此更改仍然是本地的。

如何撤消对本地“开发”分支的此提交?我使用的是tortoise git,但如果需要,我仍然可以使用git命令行。

注意:这不是我第一次提交到功能分支或第一次合并到开发分支。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30765
 
1729 次点击  
文章 [ 3 ]  |  最新文章 6 年前
Alexander Nied User123
Reply   •   1 楼
Alexander Nied User123    6 年前

所以,我们来谈谈如何将这些提交转移到特性分支,然后撤消它们。就本解释而言,我们假设您的 develop 局部分支。

  1. 获取每个错误提交的提交哈希 发展 . 您可以在图形用户界面中执行此操作,也可以签出 发展 并运行 git log 在终点站。复制粘贴到你以后可以参考的地方。

  2. 结帐 feature 分支机构。现在您将运行 git cherry-pick <commit_hash> 对于您在步骤1中保存的每个提交哈希。你想按他们承诺的顺序来做 发展 分支机构。这会将这些提交中的每一项重播到本地 特征 分支机构。

  3. 对您的 发展 分支以将其恢复到远程版本。假设远程引用是 origin/develop 你会的。 git reset --hard origin/develop

注意,还有其他方法可以做到这一点,使用 git rebase 或者使用交互式钢筋。这是我能想到的最简单的方式来传达给一个谁有一个未知量的git经验。

请注意,如果您担心在事情不按预期发展的情况下能够恢复,您可以利用 git tag 制作救援标签。

Code-Apprentice
Reply   •   2 楼
Code-Apprentice    6 年前

如果忘记为功能创建分支,则应创建一个分支:

git branch feature

然后你可以重置 develop 回到它应该在的地方:

git reset --hard HEAD~

如果你已经有了 feature 分支到您希望将意外提交的内容移动到的位置 发展 ,然后您可以使用 git cherry-pick :

git checkout feature
git cherry-pick develop

然后你可以重置 发展 如上所述。一定要先看看:

git checkout develop
Bill
Reply   •   3 楼
Bill    6 年前

有几种方法可以解决这个问题。一种方法是 cherry-pick 你的承诺 feature 分支机构。然后 reset 你的 develop 分支到上一个提交。

  1. git checkout feature
  2. git cherry-pick <commit hash>
  3. git checkout develop
  4. git reset --hard HEAD~1