标签: git-stage

如何在提交前撤消'git add'?

我错误地使用命令将文件添加到git:

git add myfile.txt
Run Code Online (Sandbox Code Playgroud)

我还没跑git commit.有没有办法撤消这个,所以这些文件不会包含在提交中?


到目前为止有48个答案(有些已删除).除非您有一些新信息,否则请不要添加新的.

git version-control git-commit git-stage

8567
推荐指数
38
解决办法
285万
查看次数

如何显示已上演的更改?

我上演了一些改变来承诺; 如何查看为下一次提交而暂存的所有文件的差异?我知道git状态,但我想看到实际的差异 - 而不仅仅是分阶段文件的名称.

我看到git-diff(1)手册页说

git diff [--options] [ - ] [...]

此表单用于查看您对索引所做的更改(下一次提交的暂存区域).换句话说,差异是你可以告诉git进一步添加到索引但你还没有.您可以使用git-add(1)暂存这些更改.

不幸的是,我无法理解这一点.必须有一些方便的单行,我可以创建一个别名,对吗?

git diff dvcs git-diff git-stage

2034
推荐指数
12
解决办法
78万
查看次数

在暂存区域中显示文件上的git diff

可能重复:
如何显示已上演的更改?

有没有办法可以看到file我做完之后所做的更改git add file

也就是说,当我这样做时:

git add file
git diff file
Run Code Online (Sandbox Code Playgroud)

没有显示差异.我想有一种方法可以看到自上次提交以来的差异,但我不知道那是什么.

git git-diff git-stage

892
推荐指数
3
解决办法
28万
查看次数

暂存已删除的文件

假设我的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 git-add git-stage git-rm

454
推荐指数
10
解决办法
23万
查看次数

Git:仅列出"未跟踪"文件(也是自定义命令)

有没有办法使用命令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 git-status git-stage git-ls-files git-rm

322
推荐指数
8
解决办法
13万
查看次数

Git列表的分阶段文件

我上传了很多文件git add,现在我希望看到我上传的所有文件,无论有git diff --cached没有git status --cached.

我怎么做?使用时,--cached我可以看到我刚刚上演的变化..所以然后我尝试使用,git statusgit add不幸的是,这不起作用git diff --cached.

git git-diff git-status git-stage

92
推荐指数
1
解决办法
8万
查看次数

Git:需要递归地'git rm'所有bin和obj文件夹的内容

有人偶然将他们所有的bin和obj文件夹提交到我们的仓库(大约有40个这样的文件夹).我想git rm -r 在所有这些文件夹上做一个.有命令这样做吗?

git git-clean git-stage git-rm

14
推荐指数
2
解决办法
9289
查看次数

如何撤消git中的最后一次提交,但保持我的更改为未分级?

我做了一个提交,但现在很难看到我改变了什么.我当然可以做一个git diff,但我宁愿撤消最后一次提交并保持我的所有更改,以便我的IDE(PyCharm)只显示我已经更改了哪些文件.

那么有没有办法撤消上次提交(真的删除它),但仍保持我的变化?欢迎所有提示!

git git-revert git-stage

14
推荐指数
3
解决办法
5707
查看次数

GIT中存储与文件之间的区别

当我需要在签出到另一个分支之前从一个分支保存我的更改时,git有时会说:在您可以签出到另一个分支之前暂存或提交文件.但我建议使用存储选项,以便:

  1. 在签出到另一个分支之前,暂存文件不足以保存我的文件?

  2. stage和stash文件有什么区别?

谢谢

git-stash git-stage

14
推荐指数
2
解决办法
1万
查看次数

使用difftool在同一文件的分阶段和非分阶段版本之间的差异

有没有办法查看同一文件的版本stagedunstaged版本之间的差异?

例如:

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 diff git-diff difftool git-stage

11
推荐指数
1
解决办法
7293
查看次数