据我所知,当你想在Git中撤消一些东西时,你必须明确地找到命令来撤消你已经完成的任何事情并发布它.例如,许多撤消提交和重做它的方法之一是遵循这里的示例,
$ git commit ...
$ git reset --soft HEAD^
$ edit
$ git add ....
$ git commit -c ORIG_HEAD
Run Code Online (Sandbox Code Playgroud)
或者要撤消拉动,您可以按照此处的说明操作,
$ git reset --hard
Run Code Online (Sandbox Code Playgroud)
但是这些命令不一定可以互换.有没有理由为什么Git不允许简单的撤销和重做命令?它与背后的哲学有什么关系?另外,我对其他版本控制系统没有太多经验,但是它们中的任何一个都提供了简单的撤销和重做命令吗?
哦哦...我错误地提交了一个相当复杂的更改(包括子目录和文件重命名),却不知道我在做什么(或者Git会做什么).
我现在想要撤消所有这样的事情:
.git)恢复到某个分支(最后一个将立即执行).我找到了对git reset --soft和git reset --hard的引用,但我已经向自己证明了我可以通过过早地使用命令而不完全理解它来做真正的损害.:)
我找到了git reset手册页,但我仍然感到困惑:
HEAD?HEAD和之间有什么区别
* master?--soft,--hard或其它(3个选项)?git reset)来"完成"逆转?更新:阅读以下答案后:
git reset --hard
HEAD^?我将laravel文件存储在bitbucket中,我还有一个项目的本地副本.每次我保存本地副本时,我都会将其推送到bitbucket中的远程存储库,以便它们具有相同的更新.
问题:我在本地项目中犯了一个错误,我想在bitbucket中删除Remote Repository中的最新提交.
有谁知道如何删除/删除bitbucket中的最新提交?
谢谢
我是git的新手.我想将我的数据推送到我的分支,但我将其推送到上游/主分支.我希望恢复推动.有什么办法吗?
任何帮助表示赞赏.
我错误地删除了我的git仓库中的目录,并提交了它.
我已经做好了
git checkout LONG_SHA_ID
Run Code Online (Sandbox Code Playgroud)
其中LONG_SHA_ID是前一次提交的ID,我已经恢复了目录,但是我还找回了我在最新提交中修复过的某些文件的先前版本.
如何使用最新版本的其他文件取回已删除的目录?
假设我要撤消先前提交引入的所有更改.
据我所知,git reset --hard <specified commit>将删除所有提交,直到指定的提交,并撤消所有更改.
另一方面,git checkout <specified commit>将更改我的目录以反映指定的提交.
所以,如果我git reset之后git checkout会有与之相同的结果git reset --hard吗?
或者,如果我git commit之后git checkout,新创建的提交是否会覆盖现有的提交?
我已将错误的文件提交给我的分支并将其推送到原点.我看过如何在Git中撤消最后一次提交的文章?这涉及撤消本地提交,但我的问题是我已将提交推送到原点.如何撤消?
我是sourceforge上FreeGLUT项目的当前维护者之一.这段代码存储在SVN仓库中,但为了激发其他人的贡献,我想提供一个git repo.我已经在github上有一个svn trunk的git-svn克隆目前在github上(通过SmartGit制作,实际上与git-svn并不真正兼容).
我通过克隆来做到这一点https://svn.code.sf.net/p/freeglut/code/trunk/freeglut.但是,我现在发现我应该克隆https://svn.code.sf.net/p/freeglut/code并让SmartGit的svn网桥弄清楚树枝和树干.
我在本地创建了这个新的正确克隆.现在的问题是:我已经在我的本地git repo中提交了一些旧的/错误的克隆提交.我想将这些转移到我的新仓库,但由于磁盘上的根目录不一样,这里概述的简单的rebase策略不起作用(我认为).
我可以用补丁来做,因为在补丁文件中为路径添加前缀git apply的--directory参数可以使事情有效,但是我必须通过提交来进行提交.至少,我还没有找到一种方法将多个提交放在一个补丁文件中(没有挤压)并在我的顶部重放它们HEAD.
如何最好地解决我的问题?
我在这里遇到的情况是,另一个合作者完成了 2 次提交,这似乎是错误的文件。我是存储库的所有者,并希望恢复由其他合作者完成的 2 次提交。从我的终端,我尝试了以下操作。
git log -2它只是说我所做的最后 2 次提交。我想知道如何重置最后 2 个提交并将 HEAD 更改为那些 2 个之前的提交。
git ×10
git-reset ×2
git-revert ×2
github ×2
bitbucket ×1
git-bash ×1
git-checkout ×1
git-commands ×1
git-commit ×1
smartgit ×1
undo ×1
undo-redo ×1