我错误地使用命令将文件添加到git:
git add myfile.txt
Run Code Online (Sandbox Code Playgroud)
我还没跑git commit.有没有办法撤消这个,所以这些文件不会包含在提交中?
到目前为止有48个答案(有些已删除).除非您有一些新信息,否则请不要添加新的.
我上演了一些改变来承诺; 如何查看为下一次提交而暂存的所有文件的差异?我知道git状态,但我想看到实际的差异 - 而不仅仅是分阶段文件的名称.
我看到git-diff(1)手册页说
git diff [--options] [ - ] [...]
此表单用于查看您对索引所做的更改(下一次提交的暂存区域).换句话说,差异是你可以告诉git进一步添加到索引但你还没有.您可以使用git-add(1)暂存这些更改.
不幸的是,我无法理解这一点.必须有一些方便的单行,我可以创建一个别名,对吗?
可能重复:
如何显示已上演的更改?
有没有办法可以看到file我做完之后所做的更改git add file?
也就是说,当我这样做时:
git add file
git diff file
Run Code Online (Sandbox Code Playgroud)
没有显示差异.我想有一种方法可以看到自上次提交以来的差异,但我不知道那是什么.
假设我的git repostiory中有一个文件叫做foo.
假设它已被删除rm(不是git rm).然后git状态将显示:
Changes not staged for commit:
deleted: foo
Run Code Online (Sandbox Code Playgroud)
如何暂存此单个文件?
如果我尝试:
git add foo
Run Code Online (Sandbox Code Playgroud)
它说:
'foo' did not match any files.
Run Code Online (Sandbox Code Playgroud) 有没有办法使用命令git ls-files,只显示未跟踪的文件?
我问的原因是因为我使用以下命令来处理所有已删除的文件:
git ls-files -d | xargs git rm
Run Code Online (Sandbox Code Playgroud)
对于未跟踪的文件,我想要类似的东西:
git some-command --some-options | xargs git add
Run Code Online (Sandbox Code Playgroud)
我能够找到-o选项git ls-files,但这不是我想要的,因为它也显示了被忽略的文件.我还能够提出以下长而丑陋的命令:
git status --porcelain | grep '^??' | cut -c4- | xargs git add
Run Code Online (Sandbox Code Playgroud)
似乎我必须在这里使用更好的命令.如果没有,我如何创建自定义git命令?
我上传了很多文件git add,现在我希望看到我上传的所有文件,无论有git diff --cached没有git status --cached.
我怎么做?使用时,--cached我可以看到我刚刚上演的变化..所以然后我尝试使用,git status但git add不幸的是,这不起作用git diff --cached.
有人偶然将他们所有的bin和obj文件夹提交到我们的仓库(大约有40个这样的文件夹).我想git rm -r
在所有这些文件夹上做一个.有命令这样做吗?
我做了一个提交,但现在很难看到我改变了什么.我当然可以做一个git diff,但我宁愿撤消最后一次提交并保持我的所有更改,以便我的IDE(PyCharm)只显示我已经更改了哪些文件.
那么有没有办法撤消上次提交(真的删除它),但仍保持我的变化?欢迎所有提示!
当我需要在签出到另一个分支之前从一个分支保存我的更改时,git有时会说:在您可以签出到另一个分支之前暂存或提交文件.但我建议使用存储选项,以便:
在签出到另一个分支之前,暂存文件不足以保存我的文件?
stage和stash文件有什么区别?
谢谢
有没有办法查看同一文件的版本staged和unstaged版本之间的差异?
例如:
Changes to be committed:
modified: conf/application.conf
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: conf/application.conf
Run Code Online (Sandbox Code Playgroud)
当我进行更改然后再次修改文件而不进行暂存时会发生这种情况.
EDIT
该git status -vv命令还不够好,因为我需要使用diff/ difftool命令.这是因为在实践中,太多文件中的更改太多,滚动浏览所有文件并不高效.但diff/ difftool允许我指定我感兴趣的文件.
git-stage ×10
git ×9
git-diff ×4
git-rm ×3
diff ×2
git-status ×2
difftool ×1
dvcs ×1
git-add ×1
git-clean ×1
git-commit ×1
git-ls-files ×1
git-revert ×1
git-stash ×1