我演出git commit后跟着一个git push.如何在本地和远程存储库上还原该更改?
$ git log
commit 364705c23011b0fc6a7ca2d80c86cef4a7c4db7ac8
Author: Michael Silver <Michael Silver@gmail.com>
Date: Tue Jun 11 12:24:23 2011 -0700
Run Code Online (Sandbox Code Playgroud) 假设您的git历史记录如下所示:
1 2 3 4 5
1-5是单独的修订.你需要删除3,同时仍然保持1,2,4和5.如何做到这一点?
在删除之后有数百个修订版时,是否有一种有效的方法?
如何重置远程和本地GIT存储库以删除所有提交,并以当前Head作为初始提交重新开始.
使用git,经过一些'commit'和几次'push'之后,我意识到我正在使用错误的分支!
现在我必须以某种方式删除我在wrong_branch中的更改并提交并推送right_branch中的更改
什么是最好(和简单)的方法呢?
谢谢
反正我有没有删除我的github提交历史记录?我不想丢失所有提交,只是最后10个左右被推送到github.我似乎无法弄清楚如何做到这一点.
我有两个分支,master和feature1.当我意识到我需要处理其他不相关的东西时,我正在研究feature1.不幸的是,我忘了从master分支,而是从feature1创建了我的feature2分支.现在我想将feature2合并到master中,但不能,因为该分支中有feature1的部分内容.
如何从feature2分支中删除feature1提交?是否涉及变基?
我觉得如果我可以将feature2的起始参考点更改为master的位置,那可能有所帮助,但不知道如何.
编辑:
谢谢你的答案!我根据@ Mark的解决方案尝试了变基础,但意识到历史比我原先想象的要复杂得多.功能2已合并到其他功能分支中,并且master已在一个点合并到feature2中.master上还有其他与feature2无关的提交.一切仍然是本地的.
真的,我的历史更像是这样的:
A - B - C - D - - - - - - - - - - - - - L - M master
|
| - I - J - K feature2
\ / \
- E - F - G - H - - - - - -N - O - P feature1
Run Code Online (Sandbox Code Playgroud)
我想要的是这个:
A - B - C - D - - - - - - - - - - …Run Code Online (Sandbox Code Playgroud) 我在我的存储库中得到了一些提交:
喜欢:
A - Added Feature A
B - Removed Feature B
C - Redesigned Feature C
D - Added Feature D
E - Added Feature D
Run Code Online (Sandbox Code Playgroud)
E是我最近的提交.现在我想摆脱我使用功能C所做的更改,但我希望保持更改添加D和E.
我希望你能帮助我.
谢谢
我有一个项目,其中包含我自己作为一种模板项目使用的另一个项目的跟踪.现在我想完全从存储库中删除这些跟踪.基本上我想切断旧的垃圾提交.所以我有
A -- B -- C -- D -- E -- F
Run Code Online (Sandbox Code Playgroud)
并希望获得类似的东西
D -- E -- F
Run Code Online (Sandbox Code Playgroud)
有A -- B -- C被完全从资源库中删除.
开发人员在服务器上添加了一个图像目录,而没有将该文件夹添加到.gitignore文件中.当我做了一个git pull它拉了那些文件(数百个文件).我将文件夹添加到服务器上的.gitignore,但不是我的本地系统.然后我在本地(永久)删除了文件.当我执行git状态时,所有这些已删除的文件仍会显示.我怎么能抑制他们出现?
更新: 感谢所有的帮助.为了确保没有错过理解:我确实想要将文件保留在服务器上,只是想从git中删除它们.
我真的不喜欢有怪物.git文件夹(2GB),我不关心2002年的变化,我不想创建新的存储库,所以我该怎么做才能清理.git/log?
请注意,我希望它不仅仅是本地的,下次我想要自2011年以来没有历史记录或历史记录克隆存储库.
谢谢