我不小心将错误的文件提交给Git,但我还没有将提交推送到服务器.
如何从本地存储库中撤消这些提交?
我做了一个git提交和随后的推送.我想更改提交消息.如果我理解正确,这是不可取的,因为有人可能在我进行此类更改之前从远程存储库中取出.如果我知道没有人拉过怎么办?
有没有办法做到这一点?
我从远程存储库的master分支克隆了项目remote_repo
.我创建了新的分支,我承诺了那个分支.其他程序员推到remote_repo
了分支机构.我现在需要将我的分支RB重新绑定到remote_repo
master上.这该怎么做 ?键入终端的命令是什么?
随着git rebase --interactive <commit>
你能够压制任意数量的提交连成一个单一的一个.
除非你想将提交压缩到初始提交中,否则这一切都很棒.这似乎是不可能的.
有没有办法实现它?
在一个相关的问题中,我设法提出了一种不同的方法来解决第一次提交的问题,这也就是说,它是第二次提交.
如果您有兴趣:git:如何插入提交作为第一个,转移所有其他?
我在过去一小时内改变了一些事情,并一步一步地提交了它们,但我刚刚意识到我忘了在一些提交之前添加一个已更改的文件.
日志看起来像这样:
GIT TidyUpRequests u:1 d:0> git log
commit fc6734b6351f6c36a587dba6dbd9d5efa30c09ce
Author: David Klein <>
Date: Tue Apr 27 09:43:55 2010 +0200
The Main program now tests both Webservices at once
commit 8a2c6014c2b035e37aebd310a6393a1ecb39f463
Author: David Klein <>
Date: Tue Apr 27 09:43:27 2010 +0200
ISBNDBQueryHandler now uses the XPath functions from XPath.fs too
commit 06a504e277fd98d97eed4dad22dfa5933d81451f
Author: David Klein <>
Date: Tue Apr 27 09:30:34 2010 +0200
AmazonQueryHandler now uses the XPath Helper functions defined in XPath.fs
commit a0865e28be35a3011d0b6091819ec32922dd2dd8 <--- changed file …
Run Code Online (Sandbox Code Playgroud) 我创建了新的分支master
:
git checkout -b testbranch
我做了20次提交.
现在我要压缩那20个提交.我这样做:
git rebase -i HEAD~20
如果我不知道有多少提交怎么办?有什么方法可以做以下事情:
git rebase -i all on this branch
我已经阅读了关于这个主题的类似帖子,并且不能为我的生活弄清楚如何正确地做到这一点.
我检查了大约1000个我不想要的文件,我宁愿不必通过1by1并将它们全部从回购中删除.
master
分支.master
分公司.他们都在同一修订版.
我想通过1次提交回滚我的遥控器.
说我的历史master
就是A--B--C--D--E
.
我想回滚我的本地D
.
然后将其推送到远程,这样我的当前哈希将是D远程和本地.
我这样做有问题.
我正在使用Git Tower,但我对命令行很满意.有帮助吗?
更新: 下面的好评.似乎部分不鼓励使用重置,特别是如果存储库与其他用户共享. 在不使用硬重置的情况下,撤消先前提交更改的最佳方法是什么?有办法吗?
我刚学会了git push --force-with-lease
.这太棒了.但是,当然,我不经常使用武力,所以我担心下次需要时我可能会忘记这个漂亮的功能.
有没有办法配置git所以git push -f
会自动使用,--force-with-lease
除非我有意覆盖它--no-force-with-lease
?
(我无法想象在没有租约的情况下想要使用武力!)
我正在开发一个功能分支.
因此,当前的提交历史记录如下所示.从现在到旧:
在将我的功能分支合并到主控之前,如何将3个提交压缩为1?
git ×10
git-rebase ×2
commit ×1
git-commit ×1
git-squash ×1
merge ×1
pre-commit ×1
push ×1
rebase ×1
squash ×1
undo ×1