如何在git中列出仅在当前分支中进行的所有未提交的更改



我是git的新手,最初我只在master分支上工作,后来我读了一些关于git分支的文章,我对它的强大能力感到惊讶,所以我开始在我的工作流程中使用分支

当我开始分支时,我的主分支是干净的,没有什么可提交的。然后我创建了新的分支功能1

git checkout -b feature1

我在branchfeature1中进行了更改,添加了一些js和css文件。然后,我从主分支创建了另一个分支,而没有提交对分支feature1所做的更改,如下所示:

git checkout master
git checkout -b feature2

我在feature2分支中添加了更多的代码,并添加了一些新的css文件,然后我再次从master创建了另一个分支feature3,并在分支feature2中提交了更改,如下所示:

git checkout master
git checkout -b feature 3

我在feature3分支中添加了一些新代码,并添加了一个新的css文件。现在我做了:

git status

我得到了所有文件的列表,我修改了,但没有提交在所有的3个分支。我原以为我只会得到当前分支中修改的文件列表,即分支功能3,现在我不记得我在哪个分支中创建了哪些文件。

有人能帮我只列出我在特定分支中创建或修改的文件并提交它们吗。到各自的分支机构。

例如

列出在feature1分支中修改或创建的所有文件,并将它们提交到feature1分支,然后对所有3个分支执行此操作。

我还想知道如何从主分支创建一个分支,而不获取在其他分支中修改但未提交的其他文件。即,我希望新分支是master的完全克隆,并注意提交。

只需启动gitk --all,就可以检查所有分支、更改等等。选择一个点并右键单击另一个点,从菜单顶部可以获得两个版本的差异。

git中的分支只是提交中的一个"标签"。如果你在master的顶部创建一个分支,它就是你能得到的最完美的"克隆"。尽管实际上它只是一个包含相同散列的41字节文件。

我认为你应该熟悉一下什么是什么,从描述中我无法推断出你做了什么,尤其是你在追求什么。

正如@abeaumet所提到的,如果您创建了文件但没有提交,那么在更改分支时就无法跟踪它们。

这是因为它们在您的工作树中,而不是您的git存储库中。您的工作树实际上是存储库的签出版本,加上您当前所做的任何更改。移动分支不会删除这些未跟踪的文件,git会将它们留在工作树中,这样它们就不会被删除。

阅读本问题中链接的一些文章,了解存储库和工作树之间的区别。

如果不提交文件,就无法确定在哪个分支上创建了文件。

相关内容

  • 没有找到相关文章

最新更新