我是Git环境的新手,我在Mac上使用BitBucket和SourceTree。我现在要做的就是放弃自上次提交以来的更改。我该怎么做?我没有发现任何类似“丢弃更改”的内容,并且直接从最后一次提交中删除似乎不起作用。使用GUI或命令行完成的解决方案将很好。谢谢。
答案 0 :(得分:127)
在 Mac 的 SourceTree 上,右键单击要放弃的文件(在工作树中的文件列表中),然后选择的 重置 强>
在 Windows 的 SourceTree 上,右键单击要放弃的文件(在工作副本更改列表中),然后选择 放弃 强>
在 git 上,您只需执行以下操作:
git reset --hard
放弃对版本化文件所做的更改;
git clean -xdf
删除新的(未跟踪的)文件,包括忽略的文件(x
选项)。 d
也会删除未跟踪的目录,f
强制删除。
答案 1 :(得分:47)
我喜欢用
git stash
这会在stash中存储所有未提交的更改。如果您希望稍后在git stash drop
(或git stash pop
恢复它们)中放弃这些更改。
虽然这在技术上并不是放弃变更的“正确”方式(正如其他答案和评论所指出的那样)。
答案 2 :(得分:7)
在未暂存的文件上,单击右侧的三个点。单击它后,将出现一个弹出菜单,然后您可以Discard file
。
答案 3 :(得分:4)
从sourcetree gui单击工作目录,右键单击要放弃的文件,然后单击Discard
答案 4 :(得分:3)
好的,我刚刚注意到我的问题已在问题标题中得到解答。
要取消暂存文件,请使用
git reset HEAD /file/name
撤消对文件的更改
git checkout -- /file/name
如果文件夹中有一批文件,则可以撤消整个文件夹
git checkout -- /folder/name
请注意,git status
在这里,我创建了一个虚拟仓库并列出了所有3种可能性
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: test
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: test2
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# test3
答案 5 :(得分:3)
按照步骤在 Sourcetree 中丢弃多个未提交的更改。
<块引用>新版本的 Sourcetree 没有前面提到的 -Reset- 按钮。因此,请按照以下 5 个步骤进行解决。
万事如意..!不再需要丢弃 302 文件。
答案 6 :(得分:1)
执行以下操作
commit
CMD+A
,按delete or discard
全选Right click
上要删除的选定未提交文件Remove
答案 7 :(得分:1)
好吧,在简单的Windows源代码树中,在macOS上,我也看了一会儿。
在源代码树中时,单击Command + Shift + R 将会显示一个隐藏的弹出窗口,可让您丢弃单个文件或全部!为什么将其隐藏?我们永远不会知道..但是它可以工作] 1
答案 8 :(得分:0)
它的 Ctrl + Shift + r
对我来说,只有一种选择可以全部丢弃。