是否可以在git中取消暂存最后暂存(未提交)的更改?假设当前分支有很多文件,有的暂存,有的不暂存。在某些时候,一些愚蠢的程序员不小心执行了:gitadd--....而不是:gitcheckout--.这个程序员现在可以使用一些神奇的git命令取消他最后的更改吗?还是他应该在实验之前就做出promise? 最佳答案 您可以使用gitreset.这将“取消暂存”您在上次提交后添加的所有文件。如果您只想取消暂存某些文件,请使用gitreset--.还可以使用gitreset-p取消暂存文件中的某些更改。.
是否可以在git中取消暂存最后暂存(未提交)的更改?假设当前分支有很多文件,有的暂存,有的不暂存。在某些时候,一些愚蠢的程序员不小心执行了:gitadd--....而不是:gitcheckout--.这个程序员现在可以使用一些神奇的git命令取消他最后的更改吗?还是他应该在实验之前就做出promise? 最佳答案 您可以使用gitreset.这将“取消暂存”您在上次提交后添加的所有文件。如果您只想取消暂存某些文件,请使用gitreset--.还可以使用gitreset-p取消暂存文件中的某些更改。.
我在远程存储库中有一个项目,与本地存储库(开发)和服务器一(生产)同步。我一直在进行一些已提交的更改,这些更改已推送到远程并从服务器中pull出。现在,我想撤消这些更改。所以我可以在更改之前将gitcheckout提交到提交并提交新更改,但我猜测将它们再次推送到远程会有问题。关于我应该如何进行的任何建议? 最佳答案 您可以通过以下方式还原单个提交:gitrevert这将创建一个新的提交,它会恢复您指定的提交的更改。请注意,它只会还原特定的提交,而不会还原之后的提交。如果你想恢复一系列提交,你可以这样做:gitrevert..它会还原
我在远程存储库中有一个项目,与本地存储库(开发)和服务器一(生产)同步。我一直在进行一些已提交的更改,这些更改已推送到远程并从服务器中pull出。现在,我想撤消这些更改。所以我可以在更改之前将gitcheckout提交到提交并提交新更改,但我猜测将它们再次推送到远程会有问题。关于我应该如何进行的任何建议? 最佳答案 您可以通过以下方式还原单个提交:gitrevert这将创建一个新的提交,它会恢复您指定的提交的更改。请注意,它只会还原特定的提交,而不会还原之后的提交。如果你想恢复一系列提交,你可以这样做:gitrevert..它会还原
这是我在我的supposed-to-be-stable分支上所做的...%gitrebasemasterFirst,rewindingheadtoreplayyourworkontopofit...Fast-forwardedalpha-0.3.0tomaster.%gitstatus#Onbranchalpha-0.3.0#Yourbranchisaheadof'origin/alpha-0.3.0'by53commits.#nothingtocommit(workingdirectoryclean)%gitpushFetchingremoteheads...refs/refs/he
这是我在我的supposed-to-be-stable分支上所做的...%gitrebasemasterFirst,rewindingheadtoreplayyourworkontopofit...Fast-forwardedalpha-0.3.0tomaster.%gitstatus#Onbranchalpha-0.3.0#Yourbranchisaheadof'origin/alpha-0.3.0'by53commits.#nothingtocommit(workingdirectoryclean)%gitpushFetchingremoteheads...refs/refs/he
如何轻松撤消gitrebase?一个冗长的手动方法是:检查两个分支的提交父级创建并checkout一个临时分支手动挑选所有提交重置错误的rebased分支以指向临时分支在我目前的情况下,这是可行的,因为我可以很容易地发现来自两个分支的提交(一个是我的东西,另一个是我同事的东西)。然而,我的方法让我印象深刻,因为它不是最优的并且容易出错(假设我刚刚用我自己的两个分支重新建立了基础)。澄清:我说的是rebase,在此期间,多个提交被重放,而不仅仅是一个。 最佳答案 最简单的方法是找到分支的头提交,因为它紧接在reflog开始rebase
如何轻松撤消gitrebase?一个冗长的手动方法是:检查两个分支的提交父级创建并checkout一个临时分支手动挑选所有提交重置错误的rebased分支以指向临时分支在我目前的情况下,这是可行的,因为我可以很容易地发现来自两个分支的提交(一个是我的东西,另一个是我同事的东西)。然而,我的方法让我印象深刻,因为它不是最优的并且容易出错(假设我刚刚用我自己的两个分支重新建立了基础)。澄清:我说的是rebase,在此期间,多个提交被重放,而不仅仅是一个。 最佳答案 最简单的方法是找到分支的头提交,因为它紧接在reflog开始rebase
我不小心在本地master分支上运行了gitmergesome_other_branch。我还没有将更改推送到originmaster。如何撤消merge?merge后,gitstatus说:#Onbranchmaster#Yourbranchisaheadof'origin/master'by5commits.如何撤消所有这些提交? 最佳答案 使用gitreflog检查哪个提交是merge之前的提交(gitreflog将是比gitlog更好的选择)。然后您可以使用以下方法重置它:gitreset--hardcommit_sha还有
我不小心在本地master分支上运行了gitmergesome_other_branch。我还没有将更改推送到originmaster。如何撤消merge?merge后,gitstatus说:#Onbranchmaster#Yourbranchisaheadof'origin/master'by5commits.如何撤消所有这些提交? 最佳答案 使用gitreflog检查哪个提交是merge之前的提交(gitreflog将是比gitlog更好的选择)。然后您可以使用以下方法重置它:gitreset--hardcommit_sha还有