没有“1 答案”的解决方案,因为可能性的数量很大,对一种情况有利的对另一种情况不利。因此,正如@twalberg 所说,您应该学习各种命令以及做什么和为什么。
话虽如此....我通常使用以下内容:
git reset --hard HEAD
# 删除我在本地所做的一切并返回使用我最初提取的分支版本(或自我上次提交以来)。其他开发人员也这样git reset --hard origin/the_branch_name
做。
git checkout -b new_branch
# 对新分支执行此操作,并且当您对分支进行了大量更改时,然后意识到您打算在新分支中执行此工作。另外,在进行合并和变基之前,我了解到从 new_branch 中执行 checkout -b new_new_branch_name 以进行变基和合并是很好的。这样,如果它搞砸了,您可以删除该分支并重新开始,而不会产生不良影响.
git rebase -i HEAD~10
意味着交互式地重新设置过去的 10 次提交。这意味着对所做的历史提交进行更改(当前状态本身不会改变)。
这会打开一个编辑器,允许您在提交历史记录中压缩、重新排序或删除提交。这可能是一个非常有用的命令,用于整理不同提交中的许多不同更改,以便将其分组到更少的提交中。我们总是在代码审查之前尝试压缩(如果需要)。
注意事项:交互式 rebase 最适合用于尚未推送到远程的分支,尤其是在有其他协作者的情况下(如果不小心,您可能会弄乱他们的历史)。基本上,最好在您仍然在本地或已推送到远程但您知道没有其他人在该分支上工作时使用。
git checkout path_to/and_file_at/myfile.rb
这是将单个文件恢复到上次提交时的任何状态。基本上它会丢弃您的本地(未提交)更改。
git clean
- 从当前目录开始递归删除不受版本控制的文件。