我看到有趣的帖子解释了微妙之处git reset.
不幸的是,我读的越多,我就越不能完全理解它.我来自SVN背景,Git是一个全新的范例.我很容易变得善变,但Git更具技术性.
我认为git reset很接近hg revert,但似乎存在差异.
究竟究竟做了git reset什么?请包括以下详细说明:
--hard,--soft和--merge;HEAD如HEAD^和HEAD~1;HEAD全球压力水平的影响.我需要还原部署的本地更改.(我svn revert在旧的skool SVN时代已经习惯了.)
我正在使用git reset --hard HEAD这个.(此外git fetch和git merge origin/$branch --no-ff用于与上游分支同步处理资料.)
但有些文章指出git checkout -f要恢复变化.
这些命令之间的主要区别是什么.推荐哪种方式?
我知道有这样的问题这样,但是这不是我在问什么.
我也知道:
git checkout tag-name:
HEAD指针,保持BRANCH指针)git reset --hard tag-name:
HEAD和BRANCH指针)我想知道更新到标签更有意义,即应该重置或检查生产.我知道垃圾收集器可以运行,删除悬空提交,但是如果在更新到标签的过程之前总是"拉"生产,那么我认为没有什么不好的.
是否应该使用reset或更新标签checkout,考虑到pull在此更新调用之前始终执行a ?
为什么git允许我重置文件?我以为我理解了reset,因为它正在移动HEAD ...显然我错了.
所以,git reset sha file似乎做同样的事情git checkout sha file,除了我file在索引和工作目录中看到的.
这对我来说没有意义.有人可以解释一下这个区别吗?
我曾使用 Mercurial,但现在使用 Git。我对 Git 的理解有些困难,你能帮我吗,Git 命令(如 Mercurial)的替代品有哪些:
hg up -C
hg revert --all
hg purge
Run Code Online (Sandbox Code Playgroud)
如果我与 Mercurial 命令“ hg up”发生一些冲突,我可以运行hg revert --all & hg purge或之类的命令hg up -C。
git pull如果我不想继续,而只是恢复到原始状态,或者更新没有冲突的文件(例如),那么在文件发生冲突后我该怎么办hg up -C?