如何在我的工作副本中排除非指数的变更?
当前回答
只用:
git stash -k -u
这将阻止未跟踪的变更和未跟踪的文件(新文件)并保持未跟踪的文件。
它比重新设置/检查/清洁更好,因为你可能希望他们后来回来(由 git stash pop)。
其他回答
我最喜欢的是
git checkout -p
这使你能够选择性地逆转碎片。
也看:
git add -p
下面实际上只是一个解决方案,如果你正在与一个存储库的福克工作,在那里你经常同步(例如拖请求)与另一个复制。
我有一个类似的问题,也许不是相同的,我很遗憾地说我的解决方案不是理想的,但它最终是有效的。
我会经常有 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 stash save --keep-index --include-untracked
你不需要包含 - 包括 - 不被吸引,如果你不想仔细了解它。
接下来,你可以用 git stash drop 命令放下这个 stash 如果你愿意。
要排除工作目录中的变化,使用 git checkout -- <file> -- 意味着当前分支参考的变化:-
https://www.baeldung.com/git-discard-unstaged-变更
cd path_to_project_folder # take you to your project folder/working directory
git checkout . # removes all unstaged changes in working directory
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的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之间的区别