我经常在OpenSSL的git repo中工作。我测试更改的依据之一是通过发出干净副本make clean; make dclean。
当我执行时git pull,git总是会失败,因为所有的开发人员资源都被删除了dclean(请参阅下文)。当它失败时,git告诉我“提交您的更改或存储您的更改...”。我对提交,保存或存储它们不感兴趣。相反,我想放弃他们。
git abandon不是命令。放弃更改的命令是什么?
一个相关的问题是如何丢弃git中未进行的变更?。但是答案是藏起来(如果您阅读了该问题,您将看不到任何答案可以真正回答该问题)。但是我对存储或保存它们不感兴趣。我只想放弃他们,这样我就可以git pull回去工作了。
$ git pull
remote: Counting objects: 2069, done.
remote: Compressing objects: 100% (872/872), done.
remote: Total 2069 (delta 1022), reused 589 (delta 589), pack-reused 608
Receiving objects: 100% (2069/2069), 3.13 MiB | 1.59 MiB/s, done.
Resolving deltas: 100% (1272/1272), done.
From https://github.com/openssl/openssl
c40dba9..e0f9bf1 master -> origin/master
8a09500..d8a2353 OpenSSL-fips-2_0-dev -> origin/OpenSSL-fips-2_0-dev
155ca14..f16093d OpenSSL_0_9_8-stable -> origin/OpenSSL_0_9_8-stable …Run Code Online (Sandbox Code Playgroud) 我的 github 帐户中有一个 fork,我将这个 fork 克隆到了我的本地计算机。现在我做了一些提交,并将其推送到origin. 然后,我readme.md直接在 GitHub 中更新了fork 中的文件,而不是在本地 clone 中。我做了一个名为Updated readme.md file.
现在我想将它与我的本地计算机同步。所以我跑了git pull。这给了我错误:
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Run Code Online (Sandbox Code Playgroud)
最后一次提交后,我修改了本地计算机上的 2 个文件。但我不再想要这些改变。所以,我想删除对这两个文件所做的任何更改,并与origin.
On branch master
Your branch is up-to-date with 'origin/master'.
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: …Run Code Online (Sandbox Code Playgroud) 我犯了一个错误,我拉下了更改,然后关闭了文本编辑器并保存了所有内容。因此,所有更改都被覆盖了。无论如何要撤消我的更改或强制撤回并覆盖我的更改?
请?
有没有一种方法可以重置工作目录中的所有文件,而不能重置暂存区中的所有文件?
我知道使用以下命令可以重置任何单个文件:
git checkout thefiletoreset.txt
另外,通过使用以下命令,可以将整个存储库重置为最后的提交状态:
git reset --hard
但是,是否有任何命令可以重置整个工作目录,而使暂存区域保持不变?