相关疑难解决方法(0)

轻松获取最新的git子模块

我们使用git子模块来管理一些依赖于我们开发的许多其他库的大型项目.每个库都是作为子模块引入依赖项目的单独repo.在开发过程中,我们经常想要抓住每个依赖子模块的最新版本.

git有内置命令来执行此操作吗?如果没有,Windows批处理文件或类似文件怎么样呢?

git git-submodules

1748
推荐指数
18
解决办法
95万
查看次数

如何将我的更改还原为git子模块?

我有一个git子模块(RestKit),我已经添加到我的仓库.

我不小心改变了那里的一些文件,我想回到源版本.为了做到这一点,我试着跑

Mac:app-ios user$ git submodule update RestKit
Run Code Online (Sandbox Code Playgroud)

但正如你在这里看到的,这不起作用,因为它仍然是"修改内容":

Mac:app-ios user$ git status
...
#   modified:   RestKit (modified content)
Run Code Online (Sandbox Code Playgroud)

甚至

Mac:app-ios user$ git submodule update -f RestKit 
Run Code Online (Sandbox Code Playgroud)

不会还原本地修改的文件.
如何重置该子模块的内容?

git git-submodules

241
推荐指数
11
解决办法
14万
查看次数

Git:我可以在status,diff等中禁止列出'modified content'/ dirty submodule条目吗?

有些人(我认为在1.6.x版本附近)git意识到了子模块内部的变化.那只会让我烦恼:

$ git status vendor | grep modified:
#       modified:   vendor/rails (modified content)
$ git diff vendor/
diff --git a/vendor/rails b/vendor/rails
--- a/vendor/rails
+++ b/vendor/rails
@@ -1 +1 @@
-Subproject commit 046c900df27994d454b7f906caa0e4226bb42b6f
+Subproject commit 046c900df27994d454b7f906caa0e4226bb42b6f-dirty

请停止?

编辑:

好的,我有答案.现在我有另一个问题:

我可以把它放进去~/.gitconfig吗?从我最初看起来我不能,并且我没有看到任何有希望通过略读补丁.(我想我仍然可以做别名.)

git git-config git-submodules

119
推荐指数
6
解决办法
4万
查看次数

在命令上设置git default标志

我想知道是否有一种方法可以为git命令默认设置一个标志.具体来说,我想设置--abbrev-commit标志,以便在执行时git log,我想执行git log --abbrev-commit.

与" git命令默认设置标志是否有任何方法? "不同,显然没有用于将-abbrev-commit添加到git log的配置标志.此外,git手册指出我无法创建别名:"为避免混淆和使用脚本的麻烦,忽略隐藏现有git命令的别名"

我的第三个选择是glog=log --abbrev-commit在我的.gitconfig文件中创建一个新的别名.但我宁愿不用新命令发明自己的DSL.

有没有其他方法来实现它,以便abbrev-commit默认设置标志?

git logging

85
推荐指数
6
解决办法
2万
查看次数

提高git状态表现的方法

我在一台位于NFS上的Linux机器上有一个10 GB的仓库.第一次git status需要36分钟,之后git status需要8分钟.似乎Git依赖于操作系统来缓存文件.只有第一个git命令commit,status包括打包/重新包装整个回购需要很长时间才能获得巨大的回购.我不确定你是否曾经使用git status过这么大的回购,但有没有人遇到过这个问题?

我已经试过git gc,git clean,git repack但所花费的时间仍是/几乎是相同的.

子模块或任何其他概念,比如将repo打成较小的那些有帮助吗?如果是这样,那么最好分割更大的回购.有没有其他方法可以改善大型仓库上git命令的时间?

git performance nfs

71
推荐指数
9
解决办法
5万
查看次数

为什么git会说“未暂缓提交更改”并指示子模块文件夹?

我在另一个模块中有一个git子模块,通过git submodule add <...>(从父仓库发出的命令)添加,因此该.gitmodules文件是在父仓库内部自动生成的。

假设我对子模块进行了更改(编辑:并且提交这些更改),然后导航回到父模块git add -A,然后执行,然后git status,它说“未上演提交更改:子模块目录名称 ...等”。

我以为git会读取.gitmodules文件(父git生成的文件!),意识到它是git子模块目录,因此当我向父请求状态时不提及其未暂存状态吗?

git git-submodules

3
推荐指数
1
解决办法
337
查看次数

标签 统计

git ×6

git-submodules ×4

git-config ×1

logging ×1

nfs ×1

performance ×1