我想要一个执行此操作的git命令:无论我处于什么状态 - 我可能在我的更改列表中有本地未提交的提交,或者未提交的提交或事情,或者我可能正处于rebase或merge中间或者我我处于一种奇怪的状态,它是这样做的:
每隔一段时间,我就会陷入一种情况,我只想说“Ok git,请把我放回一个看起来与我做了一个新的克隆回购并完成git结账的状态 - 我是(或者如果我在变基的中间)b的分支“
答案 0 :(得分:1)
没有“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
- 从当前目录开始递归删除不受版本控制的文件。
答案 1 :(得分:0)
您想要git reset
,请参阅this page了解您要执行的操作的示例。
正如评论中所指出的,git clean
将从树中删除未跟踪的文件,有关其工作原理的详细信息,请参阅this page。
如果你真的只想让它成为一个命令,你可以写一个别名或者别的东西来做这两个命令。
答案 2 :(得分:0)
找到我正在寻找的内容:https://github.com/mapmeld/gitjk