相关疑难解决方法(0)

为什么Git中没有撤消/重做?

据我所知,当你想在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 version-control undo undo-redo

9
推荐指数
2
解决办法
1872
查看次数

Git:如何撤消提交*和*恢复到最后一个分支

哦哦...我错误地提交了一个相当复杂的更改(包括子目录和文件重命名),却不知道我在做什么(或者Git会做什么).

我现在想要撤消所有这样的事情:

  1. 提交完全颠倒过来(好像它从未完成过,也许从历史中删除它)
  2. 将当前工作目录(在哪里.git)恢复到某个分支(最后一个将立即执行).

我找到了对git reset --softgit reset --hard的引用,但我已经向自己证明了我可以通过过早地使用命令而不完全理解它来做真正的损害.:)

我找到了git reset手册页,但我仍然感到困惑:

  1. 什么是HEAD
  2. HEAD和之间有什么区别 * master
  3. 在我的情况(见上文),我需要使用--soft,--hard或其它(3个选项)?
  4. 我是否需要运行另一个命令(完成后git reset)来"完成"逆转?

更新:阅读以下答案后:

  1. 我是否正确理解在我的情况下我需要做的就是发出一个命令git reset --hard HEAD^
  2. 如何验证反转是否正确执行?

git git-revert git-reset

7
推荐指数
1
解决办法
8164
查看次数

如何在Bitbucket中删除最新的Git提交?

我将laravel文件存储在bitbucket中,我还有一个项目的本地副本.每次我保存本地副本时,我都会将其推送到bitbucket中的远程存储库,以便它们具有相同的更新.

问题:我在本地项目中犯了一个错误,我想在bitbucket中删除Remote Repository中的最新提交.

有谁知道如何删除/删除bitbucket中的最新提交?

谢谢

git github bitbucket git-bash

7
推荐指数
2
解决办法
1万
查看次数

Git - 意外地推到上游而不是我的分支

我是git的新手.我想将我的数据推送到我的分支,但我将其推送到上游/主分支.我希望恢复推动.有什么办法吗?

任何帮助表示赞赏.

git github

7
推荐指数
2
解决办法
5582
查看次数

错误地在Git中删除了目录

我错误地删除了我的git仓库中的目录,并提交了它.

我已经做好了

git checkout LONG_SHA_ID
Run Code Online (Sandbox Code Playgroud)

其中LONG_SHA_ID是前一次提交的ID,我已经恢复了目录,但是我还找回了我在最新提交中修复过的某些文件的先前版本.

如何使用最新版本的其他文件取回已删除的目录?

git

6
推荐指数
1
解决办法
117
查看次数

git reset - hard和git checkout之间的区别

假设我要撤消先前提交引入的所有更改.

据我所知,git reset --hard <specified commit>将删除所有提交,直到指定的提交,并撤消所有更改.
另一方面,git checkout <specified commit>将更改我的目录以反映指定的提交.

所以,如果我git reset之后git checkout会有与之相同的结果git reset --hard吗?

或者,如果我git commit之后git checkout,新创建的提交是否会覆盖现有的提交?

git version-control git-checkout git-reset

6
推荐指数
1
解决办法
4172
查看次数

撤消推送到源的最后一个git commit

我已将错误的文件提交给我的分支并将其推送到原点.我看过如何在Git中撤消最后一次提交的文章这涉及撤消本地提交,但我的问题是我已将提交推送到原点.如何撤消?

git git-commit

5
推荐指数
2
解决办法
4252
查看次数

如何返回上次提交+删除所有新创建的文件?

如标题所示:"如何返回上次提交+删除所有新创建的文件?" 谢谢.

git git-commands

5
推荐指数
1
解决办法
2375
查看次数

重播git使用不同的根提交repo

我是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.

如何最好地解决我的问题?

git smartgit

5
推荐指数
1
解决办法
1449
查看次数

如何恢复在 Git 上完成的最后 2 次提交

我在这里遇到的情况是,另一个合作者完成了 2 次提交,这似乎是错误的文件。我是存储库的所有者,并希望恢复由其他合作者完成的 2 次提交。从我的终端,我尝试了以下操作。

git log -2它只是说我所做的最后 2 次提交。我想知道如何重置最后 2 个提交并将 HEAD 更改为那些 2 个之前的提交。

git git-revert

5
推荐指数
3
解决办法
2万
查看次数