【发布时间】:2015-03-25 20:03:18
【问题描述】:
为了帮助我了解 git 以便我可以每天使用它,有什么区别:
- 还原
- 修改
- 回滚
- 撤消
他们是什么,他们做什么?
【问题讨论】:
标签: git rollback undo git-revert git-amend
为了帮助我了解 git 以便我可以每天使用它,有什么区别:
他们是什么,他们做什么?
【问题讨论】:
标签: git rollback undo git-revert git-amend
revert 和 amend 这两个术语在 Git 中具有明确的含义。相比之下,rollback 和 undo 没有这么明确的含义,可以解释。
...表示(在当前分支上)创建一个新提交,该提交应用另一个提交引入的反向更改。这是更正已与他人共享的存储库中的问题的首选方法,因为它不涉及任何破坏(即重写历史记录)。
要恢复由<commit> 标识的提交,只需运行
git revert <commit>
...表示用具有相同父项的新提交替换“当前”提交;更多详情How does git commit --amend work, exactly?
请注意
要修改提交,进行所有必需的更改并暂存它们,然后运行
git commit --amend
这里不需要指定任何提交,因为当前分支上的最后一次提交是要修改的。然后您的编辑器将弹出,让您有机会修改提交消息。
...通常意味着丢弃(或存储)任何本地更改并将分支重置为提交(或简单地检查提交,但这会使您处于分离的 HEAD 状态),然后再提交事情开始的地方弄乱。使用
git reset <commit-before-things-started-to-go-belly-up>
...可能意味着,取决于上下文,
【讨论】:
撤消更改:git checkout、git revert、git reset、git clean
git revert:此命令恢复提交的更改。它在日志中维护跟踪记录。
git reset:此命令恢复提交的更改。它不会在日志中维护跟踪记录,即重置为恢复的提交。 注意:这是一个破坏性的功能。使用此命令必须小心。
git reset --soft HEAD^撤消上次提交,将更改放入暂存
git reset --hard HEAD^撤消上次提交和所有更改
git reset --hard HEAD^^撤消最近 2 次提交和所有更改
git commit --amend 其中 amend 表示添加到最后一次提交。有时我们忘记添加要提交的文件。比如abc.txt文件忘记了,我们可以添加如下:git add abc.txt和git commit --amend -m "New commit message"
注意:我们没有rollback和undo这个确切的名称,无论是动词还是选项。
【讨论】:
git --amend 您应该只对尚未推送到另一个 Git 存储库的公共分支的提交使用 git --amend 命令。 git --amend 命令创建一个新的提交 ID,人们可能已经将他们的工作基于现有的提交。 在这种情况下,他们需要根据新的提交迁移他们的工作
git 还原 您可以通过 git revert 命令恢复提交。此命令恢复提交的更改。 此类提交有助于记录更改已撤回。
这是[在此处输入链接描述][1]
[1]:How do you roll back (reset) a Git repository to a particular commit? 回滚技术
【讨论】: