Git 我在Android Studio的“提交更改”屏幕上看不到更改的文件

Git 我在Android Studio的“提交更改”屏幕上看不到更改的文件,git,android-studio,push,commit,Git,Android Studio,Push,Commit,当我转到VCS>提交更改时,我会看到以下屏幕: 我可能误按了某个按钮或其他东西,从那以后我无法提交整个项目,只有一个文件.iml文件。 为什么我看不到我的项目中的任何其他文件?Git只提交对文件的更改,因此除非您更改项目中的每个文件,否则您将无法为提交准备所有文件。提交快照将包含更改的文件以及其他所有文件,因此不要担心丢失这些文件。Git只提交对文件的更改,因此除非您更改项目中的每个文件,否则您将无法为提交准备所有文件。提交快照将包含已更改的文件以及其他所有文件,因此不必担心丢失这些文件。首先要

当我转到VCS>提交更改时,我会看到以下屏幕:

我可能误按了某个按钮或其他东西,从那以后我无法提交整个项目,只有一个文件.iml文件。
为什么我看不到我的项目中的任何其他文件?

Git只提交对文件的更改,因此除非您更改项目中的每个文件,否则您将无法为提交准备所有文件。提交快照将包含更改的文件以及其他所有文件,因此不要担心丢失这些文件。

Git只提交对文件的更改,因此除非您更改项目中的每个文件,否则您将无法为提交准备所有文件。提交快照将包含已更改的文件以及其他所有文件,因此不必担心丢失这些文件。

首先要做的事情 正如你之前得到的答案中提到的,你不能像你所说的那样完成整个项目。您只能提交尚未录制的更改。 记住这一点,如果您看到“提交更改”屏幕中没有文件,就没有必要惊慌。对您的文件所做的更改是安全可靠的,它们已经由git录制,您不会丢失这些更改

然而,我不同意前面的答案。据我所知,您对项目做了一些更改,但现在无法找到它们。正如你在问题中所说的,你记得你无意中按下了某个东西,现在这些文件从你可以提交的文件列表中“消失”了

问题的可能原因 在这种情况下,让我们一起尝试找出这些更改的位置。 有许多可能性:

您可能已选择不将文件添加到git 您可能已经添加了要忽略的文件列表 你可能把这些变化藏起来了 您可能已提交更改,但尚未将其推送到远程存储库 首先,让我们介绍git记录更改的方式-

记录对存储库的更改 Git正在跟踪您的文件,以查看文件是否有任何更改。如果是这样,git将注意到这些更改,您将能够提交它们。所有跟踪的文件都以“未修改”开头。然后,当您编辑它们时,它们被标记为“已修改”。 当您选择提交文件时,git将为提交做好准备,询问您希望提交哪个文件,这些文件将标记为“暂存”。 提交完成后,所有文件都会返回到“未修改”状态

有关更多信息,请阅读“Git基础知识”一书中的说明:

请记住,工作目录中的每个文件都可以位于两个文件之一中 状态:跟踪或未跟踪。跟踪的文件是在 最后快照;它们可以是未修改、修改或分段的。未追踪 文件是所有其他文件–工作目录中的任何文件 不在上次快照中,也不在临时区域中。什么时候 首先克隆存储库,所有文件都将被跟踪和删除 未修改,因为Git刚刚签出它们,而您尚未编辑 什么都行

当您编辑文件时,Git会将其视为已修改,因为您已经 自上次提交后已更改它们。您可以将这些修改过的文件暂存 然后提交所有阶段性更改,然后循环重复

将文件添加到Git 根据规则,Android Studio将根据文件在git中的状态标记目录中的文件

当名称以蓝色显示时,表示文件已修改。 当名称显示为绿色时,表示该文件是一个新文件,并且 已添加到git跟踪的文件集中。 当名称显示为红色时,表示该文件未被跟踪。 当名称以白色/灰色显示时,表示该文件未被修改。 如果看到存储库中的某些文件名显示为红色,则可以: 右键单击=>Git=>Add,Git将跟踪它们,您可以在尝试提交时看到它们

Git忽略列表 Gitignore列表将允许您指定有意忽略的未跟踪文件。 忽略列表基本上是一个文件,包含工作目录中希望git取消跟踪的文件的位置。此列表将防止未跟踪的文件被添加到git跟踪的文件集中,记住git将继续跟踪任何已经被跟踪的文件。 如果是这样,将文件添加到gitignore列表将使其从您可以提交的文件列表中“消失”。 因此,为了将其取回并再次提交,您需要将其从gitignore列表中删除。 为此,需要在git命令行中键入git add-A命令。此命令将暂存目录中的所有文件—新建、修改、删除,并解决您的问题。 此外,您应该查看Android St上配置的忽略文件列表 udio并确保您要提交的文件不存在。 要访问忽略文件列表,请转到Project=>Settings=>Version Control=>Windows和Linux或Android Studio菜单中的忽略文件=>Preferences=>Version Control=>MacOS中的忽略文件。在这里,您可以将其从“忽略的文件”列表中删除

隐藏变化 从“Git基础知识”一书中:

通常,当你一直在做你项目的一部分时,事情就会变得复杂起来 一个混乱的状态,你需要切换一些分支来处理 还有别的。问题是,你不想做一个 完成了一半的工作,只是为了稍后回到这一点。这个 这个问题的答案是git stash命令

隐藏将获取工作目录的脏状态-即, 您修改的跟踪文件和阶段性更改-并将其保存在 可以随时重新应用的未完成更改的堆栈

您可能已经隐藏了文件,但现在它们似乎未被修改,您无法提交它们。 要取消隐藏,请单击项目的主文件夹: 右键单击=>Git=>Repository=>UnStash Changes…,然后从列表中选择最新的存储并单击“应用存储”。 如果您在列表中看不到任何内容,或者列表中不包含您所做的最新更改,则情况并非如此

提交更改但不推送更改 最后一种可能的选择是,您已经提交了更改,但还没有将其推送到远程存储库,因此在云/其他计算机上看不到它们。 如上所述,gitcommit命令将记录对文件的更改,但这里最重要的是将记录在本地存储库中。 为了更新远程存储库,您还需要使用gitpush命令推送这些更改。 Android Studio提供了两种更改:提交更改和提交并推送更改。 您可能已选择提交更改,在这种情况下:

从本地存储库的角度来看: 这些变化被记录下来 文件返回到“未修改”模式,您无法看到它们 在提交屏幕上,直到下一个 您将进行的更改。 从远程存储库的角度来看: 没有更新,因为您没有执行push命令。 下面是来自的一幅很好的图片,它解释了git模型和命令:

为了解决这个问题,您只需通过以下方式将更改推送到远程存储库: 右键单击=>Git=>Repository=>Push。那很简单

进一步阅读 以下是一些有用的链接:

希望我的回答能帮助您解决问题:

第一件事优先 正如你之前得到的答案中提到的,你不能像你所说的那样完成整个项目。您只能提交尚未录制的更改。 记住这一点,如果您看到“提交更改”屏幕中没有文件,就没有必要惊慌。对您的文件所做的更改是安全可靠的,它们已经由git录制,您不会丢失这些更改

然而,我不同意前面的答案。据我所知,您对项目做了一些更改,但现在无法找到它们。正如你在问题中所说的,你记得你无意中按下了某个东西,现在这些文件从你可以提交的文件列表中“消失”了

问题的可能原因 在这种情况下,让我们一起尝试找出这些更改的位置。 有许多可能性:

您可能已选择不将文件添加到git 您可能已经添加了要忽略的文件列表 你可能把这些变化藏起来了 您可能已提交更改,但尚未将其推送到远程存储库 首先,让我们介绍git记录更改的方式-

记录对存储库的更改 Git正在跟踪您的文件,以查看文件是否有任何更改。如果是这样,git将注意到这些更改,您将能够提交它们。所有跟踪的文件都以“未修改”开头。然后,当您编辑它们时,它们被标记为“已修改”。 当您选择提交文件时,git将为提交做好准备,询问您希望提交哪个文件,这些文件将标记为“暂存”。 提交完成后,所有文件都会返回到“未修改”状态

有关更多信息,请阅读“Git基础知识”一书中的说明:

请记住,工作目录中的每个文件都可以位于两个文件之一中 状态:跟踪或未跟踪。跟踪的文件是在 最后快照;它们可以是未修改、修改或分段的。未追踪 文件是所有其他文件–工作目录中的任何文件 不在上次快照中,也不在临时区域中。什么时候 首先克隆存储库,所有文件都将被跟踪和删除 未改性贝卡 UseGit只是将它们签出,您还没有编辑它们 什么都行

当您编辑文件时,Git会将其视为已修改,因为您已经 自上次提交后已更改它们。您可以将这些修改过的文件暂存 然后提交所有阶段性更改,然后循环重复

将文件添加到Git 根据规则,Android Studio将根据文件在git中的状态标记目录中的文件

当名称以蓝色显示时,表示文件已修改。 当名称显示为绿色时,表示该文件是一个新文件,并且 已添加到git跟踪的文件集中。 当名称显示为红色时,表示该文件未被跟踪。 当名称以白色/灰色显示时,表示该文件未被修改。 如果看到存储库中的某些文件名显示为红色,则可以: 右键单击=>Git=>Add,Git将跟踪它们,您可以在尝试提交时看到它们

Git忽略列表 Gitignore列表将允许您指定有意忽略的未跟踪文件。 忽略列表基本上是一个文件,包含工作目录中希望git取消跟踪的文件的位置。此列表将防止未跟踪的文件被添加到git跟踪的文件集中,记住git将继续跟踪任何已经被跟踪的文件。 如果是这样,将文件添加到gitignore列表将使其从您可以提交的文件列表中“消失”。 因此,为了将其取回并再次提交,您需要将其从gitignore列表中删除。 为此,需要在git命令行中键入git add-A命令。此命令将暂存目录中的所有文件—新建、修改、删除,并解决您的问题。 此外,您应该查看Android Studio上配置的忽略文件列表,并确保您要提交的文件不在其中。 要访问忽略文件列表,请转到Project=>Settings=>Version Control=>Windows和Linux或Android Studio菜单中的忽略文件=>Preferences=>Version Control=>MacOS中的忽略文件。在这里,您可以将其从“忽略的文件”列表中删除

隐藏变化 从“Git基础知识”一书中:

通常,当你一直在做你项目的一部分时,事情就会变得复杂起来 一个混乱的状态,你需要切换一些分支来处理 还有别的。问题是,你不想做一个 完成了一半的工作,只是为了稍后回到这一点。这个 这个问题的答案是git stash命令

隐藏将获取工作目录的脏状态-即, 您修改的跟踪文件和阶段性更改-并将其保存在 可以随时重新应用的未完成更改的堆栈

您可能已经隐藏了文件,但现在它们似乎未被修改,您无法提交它们。 要取消隐藏,请单击项目的主文件夹: 右键单击=>Git=>Repository=>UnStash Changes…,然后从列表中选择最新的存储并单击“应用存储”。 如果您在列表中看不到任何内容,或者列表中不包含您所做的最新更改,则情况并非如此

提交更改但不推送更改 最后一种可能的选择是,您已经提交了更改,但还没有将其推送到远程存储库,因此在云/其他计算机上看不到它们。 如上所述,gitcommit命令将记录对文件的更改,但这里最重要的是将记录在本地存储库中。 为了更新远程存储库,您还需要使用gitpush命令推送这些更改。 Android Studio提供了两种更改:提交更改和提交并推送更改。 您可能已选择提交更改,在这种情况下:

从本地存储库的角度来看: 这些变化被记录下来 文件返回到“未修改”模式,您无法看到它们 在提交屏幕上,直到下一个 您将进行的更改。 从远程存储库的角度来看: 没有更新,因为您没有执行push命令。 下面是来自的一幅很好的图片,它解释了git模型和命令:

为了解决这个问题,您只需通过以下方式将更改推送到远程存储库: 右键单击=>Git=>Repository=>Push。那很简单

进一步阅读 以下是一些有用的链接:


希望我的回答能帮助您解决问题:

在我的例子中,我的Android Studio版本控制首选项有两个git根,其中一个是错误的。我想,这打乱了查找修改文件的算法。有关更多详细信息,请参阅

要检查的其他内容包括命令行。做一个git状态,你看到修改过的文件了吗?事实上,这应该是切赫首先要做的事情之一 ck。如果您确实看到git状态的文件,那么问题可能是Android Studio版本控制和/或版本控制->git设置的配置错误


其他需要检查的内容也可以在我链接的同一个堆栈溢出帖子中找到。

在我的例子中,我的Android Studio版本控制首选项有两个git根,其中一个是错误的。我想,这打乱了查找修改文件的算法。有关更多详细信息,请参阅

要检查的其他内容包括命令行。做一个git状态,你看到修改过的文件了吗?事实上,这应该是首先要检查的事情之一。如果您确实看到git状态的文件,那么问题可能是Android Studio版本控制和/或版本控制->git设置的配置错误


其他需要检查的内容也可以在我链接的同一堆栈溢出帖子中找到。

有两种可能性:1。它是自上次提交2以来唯一更改的文件。其他文件位于.gitignore中,未被gitignore跟踪。您已更改了一个.iml文件。没什么大不了的。如果您不想更改,只需要git checkout-Oklahoma.iml文件来重置它。如果您确实想要更改,那么请进行提交。它是自上次提交2以来唯一更改的文件。其他文件位于.gitignore中,未被gitignore跟踪。您已更改了一个.iml文件。没什么大不了的。如果您不想更改,只需要git checkout-Oklahoma.iml文件来重置它。如果确实需要更改,请进行提交。