我正在努力学习如何有效地使用Git,我想知道我应该如何(良好做法/不良做法?)解决以下案例:
假设我在master中有以下提交链:
然后我意识到在最后两次提交中完成的操作是完全错误的,我需要再次从Commit 1开始.问题:
我正在努力学习Git.我很困惑
git rm --cached file
Run Code Online (Sandbox Code Playgroud)
和
git reset file
Run Code Online (Sandbox Code Playgroud)
这两个命令似乎都将文件从暂存区域转移到非暂存区域.命令有何不同?
我试图在git中撤消我的提交.使用危险git reset --hard HEAD~1吗?
不同选项有git reset什么区别?
虽然reset并checkout具有不同用途的大部分时间,我看不出有什么区别在这两个之间.
可能有一个或任何人都--hard不愿意添加一个选项来做一些基本的checkout事情.
也许你会看到历史的方式有所不同?
我在Windows 7上使用Atom编辑器.在运行命令的git shell上git reset --hard,所有其他编辑器重置/撤消所有修改过的文件.但如果我使用ATOM编辑器,则会保留更改.如果我尝试在编辑器中关闭文件,Atom会询问,文件是否已更改,是否要保存更改.
如何在外部修改文件时强制Atom撤消更改.
让我们说昨天我在我的主分支上做了一些更改,我忘了添加,提交它们.在早上我做到了
git reset --hard
Run Code Online (Sandbox Code Playgroud)
在这种情况下可以恢复已删除的文件吗?
我有一个git存储库,它拥有一个Drupal站点.我花了最后一天尝试使用几个不同的模块来构建一个功能.我放弃了目前的做法,决定尝试不同的模块组合.但是,我的存储库在主分支上有几个提交包含这个功能开发过程(我知道我没有以有效的方式分支.)我想摆脱最后的三个或四个提交并将master设置为我的历史(我不想将我目前的工作与任何东西合并,我只是想让它消失.)我该怎么做?
嗨,我很好奇这两个命令之间的区别.当他们在这里介绍时:https://www.atlassian.com/git/tutorials/undoing-changes
看起来像git reset --hard也设置了staging和工作目录以匹配最新的提交,但最后他们说git reset --hard不会改变当前的工作目录.所以我在这里很困惑,有人可以澄清一下吗?
考虑我已经提交了一个db/schema.rb我不打算改变的文件(例如).我需要去做:
git reset db/schema.rb
git checkout db/schema.rb
Run Code Online (Sandbox Code Playgroud)
我可以通过单一命令来完成吗?
每次播放文件时,Git都会在您需要取消暂存文件时提供有用的说明:
(use "git reset HEAD <file>..." to unstage)
然而,Atlassian的优秀Git教程简单地说:
git reset <file>
这似乎更直截了当,为什么差异呢?
git ×10
git-reset ×10
git-checkout ×2
atom-editor ×1
commit ×1
git-branch ×1
git-clean ×1
git-rm ×1
undo ×1
unstage ×1