【问题标题】:Command line tool to check if any git repos have uncommitted code?检查任何 git repos 是否有未提交的代码的命令行工具?
【发布时间】:2016-03-09 03:08:21
【问题描述】:

是否有一个命令行工具可以递归地查看所有 .git 存储库的目录并检查未提交的代码?用例是我在工作和家里有一台机器,有时我忘记在下班回家之前将代码推送到 Github。是否存在可以做到这一点的工具?也许 git 本身可以做到这一点?

我可能想自己写这样的东西只是为了好玩——有人知道如何检查 .git 存储库中未提交的代码吗?我想我可以运行 git 命令并以某种方式收集结果。

【问题讨论】:

  • 我不认为 Git 存储库可以包含未提交的代码,因为根据定义,除非之前已提交文件,否则文件不会在其中。就个人而言,我只是在提交/推送之前虔诚地使用git status,并且我总是检查未跟踪列表中我可能添加的新文件。
  • 这可能是真的 - 我的意思是未提交的代码 - 正在检查 git status 的结果以查看是否返回了未提交的项目

标签: git github command-line command-line-tool


【解决方案1】:
git status --s

给你类似的东西

M includes/angular/settingsCtrl.js
M index.php
M templates/views/settings/profile.php
?? vendor/apache/

您当前工作目录中的所有新 /modified 文件是什么

您可以将这些结果输入 git add 然后运行 ​​git commit,然后运行 ​​git push

你应该可以使用 shell 脚本来做到这一点

【讨论】:

    【解决方案2】:

    让我们解释一下 git 是如何工作的(一般来说)。

    Git 有一种称为 3 个状态的东西。
    3 个状态 是一个非常基本的 git,你所做的更改会反映在这个结构中。


    3 states

    为了简化它看起来像这样:
    在每个项目中,您各有 1 个。

    • 工作目录是您编写代码的文件系统。
    • 统计区是您在提交文件之前添加文件的地方。
    • 存储库是您提交和存储所有更改的地方,

    如前所述,每个项目都有 1 个,因此每次切换到不同的分支时,工作目录和暂存的所有内容都会“移动”,并且会出现在每个分支上,直到您提交为止。

    因此,一旦我们了解了发生了什么,您的问题的答案就很简单了:

    您需要找出尚未提交的内容。你用 git status 命令来做。


    git status

    【讨论】:

    • 我相信 git status 实际上会检查以查看未添加的内容,它似乎同时检查了两者,即已更改且未添加到暂存中的内容,以及正在暂存的内容还没有提交,对吗?
    • 是的。向您展示工作目录与暂存区和暂存区与 repo 相比的区别
    【解决方案3】:

    我遇到了同样的问题/要求,最终使用了eapen/ucommitted,效果很好。

    当然,像您/其他人提到的那样编写脚本会很简单,而且是一个很好的学习练习!

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 1970-01-01
      • 2018-05-01
      • 2011-07-16
      • 2018-08-26
      • 2015-01-15
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      相关资源
      最近更新 更多