【发布时间】:2018-01-01 22:14:03
【问题描述】:
我的机器上有几个项目文件夹,都包括一个.git-目录。我假设所有程序员都处于这种情况,他们忘记将某些东西推送到服务器。那么有没有办法在所有子目录中搜索未提交/未暂存的更改并列出它们?
这是我的情况的一个例子:
MainFolder
|
|-Project1
| |-.git # containing uncommitted changes
| |-index.php
| |-page_one.php
|
|-Project2
| |-.git # This git-status is clean
| |-index.php
| |-another_page.php
|
|-Project3
| |-.git # containing unstaged changes
| |-index.php
| |-some_page.php
|
|-Project4
|-.git # containing uncommited changes
|-index.php
|-some_page.php
我想要一份清单,说:
You need to check these .git-files:
- MainFolder/Project1/.git
- MainFolder/Project3/.git
- MainFolder/Project4/.git
【问题讨论】:
-
你的问题的困难在于我怀疑你真正想知道的是工作目录和/或舞台是否有任何变化。所以我认为任何答案都必须检查这两个地方,因为这可能是 Git 本身在运行
git status时必须做的事情。 -
是的。理想情况下,我想要一个 bash 脚本(或其他东西),如果有 git 文件,则遍历所有子目录并执行“git init”,如果有任何未提交/未阶段的更改,则输出该名称git 文件。我只是希望有一些更简单的解决方案。我尝试在 .git 文件夹中四处查看,但我不知道我在寻找什么。
-
未分阶段/未提交的更改与忘记推送无关。
-
公平地说,它可以做到,这取决于 git 是仅用于版本控制还是实际输入管道以构建应用程序。我们过去也遇到过类似的问题。