我不小心将错误的文件提交给Git,但我还没有将提交推送到服务器.
如何从本地存储库中撤消这些提交?
我的问题是我已经更改了一个文件,例如:README,为我的测试行添加了一行新的'并保存了该文件,然后我发出了以下命令
git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README
#
no changes added to commit (use "git add" and/or "git commit -a")
git add README
git commit -a -m 'To add new line to readme'
Run Code Online (Sandbox Code Playgroud)
我没有将代码推送到github,现在我想取消这个提交.
为此我用过
git reset --hard HEAD~1
Run Code Online (Sandbox Code Playgroud)
但是我从README文件中丢失了新添加的" 这个用于我的测试行 ".这不应该发生.我需要内容.有没有办法保留内容并取消我的本地提交?
我看到有趣的帖子解释了微妙之处git reset.
不幸的是,我读的越多,我就越不能完全理解它.我来自SVN背景,Git是一个全新的范例.我很容易变得善变,但Git更具技术性.
我认为git reset很接近hg revert,但似乎存在差异.
究竟究竟做了git reset什么?请包括以下详细说明:
--hard,--soft和--merge;HEAD如HEAD^和HEAD~1;HEAD全球压力水平的影响.我做了一个,git commit但我还没把它推到存储库.所以,当我这样做时git status,我得到'#你的分支在'提交'之前领先于'master'.
所以,如果我想回滚我的顶级提交,我可以这样做:
git reset --hard eb27bf26dd18c5a34e0e82b929e0d74cfcaab316
Run Code Online (Sandbox Code Playgroud)
鉴于我什么时候git log得到:
commit eb27bf26dd18c5a34e0e82b929e0d74cfcaab316 Date: Tue Sep 29 11:21:41 2009 -0700 commit db0c078d5286b837532ff5e276dcf91885df2296 Date: Tue Sep 22 10:31:37 2009 -0700
我有一个带有2个分支的git存储库:master和test.
主分支和测试分支之间存在差异.
两个分支都承诺所有更改.
如果我做:
git checkout master
git diff test
出现一个充满变化的屏幕,显示出差异.我想合并测试分支中的更改,所以:
git merge test
但得到消息"已经是最新的"
但是,检查每个不同分支下的文件清楚地显示了差异.
这里有什么问题,如何解决?
我一直在用git工作一个多月.事实上我昨天才第一次使用复位,但软复位对我来说仍然没有多大意义.
据我所知,我可以使用软重置编辑提交而不改变索引或工作目录git commit --amend.
这两个命令是否真的相同(reset --softvs commit --amend)?有任何理由在实际中使用其中一个吗?更重要的是,reset --soft除了修改提交之外还有其他用途吗?
我试图在git中撤消我的提交.使用危险git reset --hard HEAD~1吗?
不同选项有git reset什么区别?
有没有办法在Visual Studio 2015中获取文件的特定版本(来自特定提交) - 团队资源管理器/团队服务Git?
我只是希望使用以前版本的文件来运行解决方案,只是为了查看过去的运行情况,然后回到最新版本继续开发.
我没有创建任何分支.我一直在"主"分支.
我不小心提交了我的本地存储库.更具体地说,当我打算一次提交一个文件时,我同时对大量文件进行了更改.
如何撤消此提交并将我的工作副本恢复到提交之前的状态,这样我就可以做我应该做的事情了?
提交后我没有推或拉或其他任何东西.
您可能怀疑这是重复的,因此我将解释为什么以下问题不同,或者不回答我的问题:
对此问题的回答表明,您可以执行此操作hg commit --amend,但不解释如何执行此操作或举例说明.mercurail帮助也没有为我说明.
国家使用hg rollback.这个命令显然已被弃用了,我还是尝试使用它,但是我得到了混乱:没有可用的回滚信息.遗憾的是,这不起作用,因为这将是一种非常直观的方式来实现我想要的.
git ×9
git-commit ×2
git-reset ×2
undo ×2
azure-devops ×1
mercurial ×1
merge ×1
pre-commit ×1
reset ×1