如何在我的工作副本中排除非指数的变更?
当前回答
如果您想恢复未完成的文件,请使用 git restore --staged。
其他回答
git checkout -f
男子Git-Checkout:
F、 - 力量
在切换分支时,即使指数或工作树与头部不同,也会进行进展,用来消除当地的变化。
在从指数中查看路径时,不要错过未嵌入的输入;相反,未嵌入的输入被忽略。
我最喜欢的是
git checkout -p
这使你能够选择性地逆转碎片。
也看:
git add -p
git clean -df
清理工作树,重复删除不受版本控制的文件,从当前目录开始。
D:除了未追踪的文件之外,还可以删除未追踪的目录
-f: 力量(可能不需要根据 clean.requireForce 设置)
Run git help clean 查看手册
当你想将一个字符转移到另一个人时:
# add files
git add .
# diff all the changes to a file
git diff --staged > ~/mijn-fix.diff
# remove local changes
git reset && git checkout .
# (later you can re-apply the diff:)
git apply ~/mijn-fix.diff
[编辑] 如评论,可以命名 stashes. 好吧,如果你想分享你的 stash ;)
下面实际上只是一个解决方案,如果你正在与一个存储库的福克工作,在那里你经常同步(例如拖请求)与另一个复制。
我有一个类似的问题,也许不是相同的,我很遗憾地说我的解决方案不是理想的,但它最终是有效的。
我会经常有 git 状态消息如下(包含至少 2/4 文件):
$ git status
# Not currently on any branch.
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: doc/PROJECT/MEDIUM/ATS-constraint/constraint_s2var.dats
# modified: doc/PROJECT/MEDIUM/ATS-constraint/parsing/parsing_s2var.dats
#
# 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: doc/PROJECT/MEDIUM/ATS-constraint/constraint_s2Var.dats
# modified: doc/PROJECT/MEDIUM/ATS-constraint/parsing/parsing_s2Var.dats
一个激动人心的眼睛会注意到,这些文件有双重的,这是一个单一的字母的情况下. 某种方式,我不知道什么导致我下这个路径开始(因为我没有工作这些文件自己从上流的repo),我已经转换了这些文件. 试试这个页面上列出的许多解决方案(和其他页面)似乎没有帮助。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别