标签: git

如何以相当快的速度粉碎 git 存储库?

我有兴趣在合理的时间内准确删除 git 存储库。

但要做到这一点需要相当长的时间。在这里,我有一个小型测试存储库,其中.git文件夹 < 5MiB。

$ du -ac ~/tmp/.git | tail -1
4772    total
$ find ~/tmp/.git -type f | wc -l
991
Run Code Online (Sandbox Code Playgroud)

使用shred的默认选项,这需要相当长的时间。在下一个命令中,我用来--force更改权限并--zero在粉碎后用零覆盖。默认的粉碎方法是用随机数据覆盖3次(-n3)。

我还想稍后删除这些文件。根据man shred--remove=wipesync(默认情况下,当--remove使用时)仅对目录进行操作,但这似乎会减慢我的速度,即使我只对文件进行操作。比较(每次我重新初始化 git 存储库时):

$ time find ~/tmp/.git -type f | xargs shred --force --zero --remove=wipesync
real    8m18.626s
user    0m0.097s
sys     0m1.113s

$ time find ~/tmp/.git -type f | xargs shred --force --zero --remove=wipe
real    0m45.224s
user    0m0.057s
sys …
Run Code Online (Sandbox Code Playgroud)

git data-recovery shred deleted-files

2
推荐指数
1
解决办法
631
查看次数

在执行任何 cd 命令后运行 git fetch

我需要在后台执行任何 cd 命令之后运行 git fetch,并且仅当我位于 git 目录中时。

bash zsh git cd-command

2
推荐指数
1
解决办法
980
查看次数

如何为输出“git push”命令设置变量

我尝试了这样的方法:

pushOut=`git push`
Run Code Online (Sandbox Code Playgroud)

但是当我尝试时:

echo $pushOut
Run Code Online (Sandbox Code Playgroud)

我得到一个空字符串

bash git variable

2
推荐指数
1
解决办法
4802
查看次数

如何在centOS 6中更新git

我已经使用 vagrant 在 centOS 6 上安装了厨师工作站。我当前的 git 版本是 1.7.1

git config --list,却是不接受push.default = simple。如何通过终端将此 git 版本更新到最新版本。

任何帮助表示赞赏!

centos git vagrant

2
推荐指数
1
解决办法
7336
查看次数

如何使用 git log 查找哪个作者和提交者对项目做了更多提交?

我一直在浏览Git 基础知识 - 查看提交历史记录 以及 Git 工具 - 搜索,虽然大多数方法看起来很简单,但我一直在尝试找出是否有一种方法可以找出做得最多的作者提交或/和完成项目中大部分提交的提交者。

我确信会有一些方法,例如 -

  1. 查找在项目中完成最多提交的作者。

  2. 以降序的方式查找提交次数最多的作者。

  3. 查找在项目中完成最多提交的提交者

诸如此类的事情。它可以对项目本身的状态进行一些有趣的分析。

人们知道在上述情况下可以做什么吗?

我正在使用 Debian 破坏者。

linux git version-control git-log

2
推荐指数
1
解决办法
940
查看次数

~/git-credentials 文件是什么样的?

假设我有一个 git 存储库,例如 -

https://salsa.debian.org/shirishag75-guest/gradle-build-script-

现在在我的系统中我有 -

:~/games/gradle-build-script-/.git$ cat config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = https://salsa.debian.org/shirishag75-guest/gradle-build-script-.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)

现在我想使用仅 https 身份验证来获取我的 git 用户名和密码。我怎么做 ?

答案是~/git-credentials。有人可以分享它的外观或它应该是什么样子吗?

我试着看看——

$ git config credential.helper --help
$
Run Code Online (Sandbox Code Playgroud)

没有告诉我任何事情:(

期待获得更多信息。也许有一个虚构的例子:)

也许有一个莎莎回购协议。和一个 github 存储库。名称和密码都是虚构的,所以知道它是什么样子的吗?

我一直不明白商店的意义是什么 -

git config credential.helper 'store [<options>]'
Run Code Online (Sandbox Code Playgroud)

我从https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage尝试了以下操作

现在这只是一个没有真正凭据的示例,只是为了了解它是如何工作的 -

shirish@debian:~$ cat .mycredentials 
protocol=https
host=github.com
username=shirish
password=s3cre7
protocol=https
host=salsa.debian.org …
Run Code Online (Sandbox Code Playgroud)

password git

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

如何使用 bash 脚本仅打印 git 消息/标题?

我可以使用以下命令在 bash 中打印当前的 git 提交sha1

git rev-parse --short HEAD
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能只打印 HEAD 的最新提交消息/标题呢?

git

2
推荐指数
1
解决办法
3965
查看次数

如何在 Arch Linux 上正确解决“git-gui:找不到命令”?

Arch Linuxgit软件包安装git-gui/usr/lib/git-core/.

这意味着git-gui在不指定完整路径的情况下无法直接从终端启动:

$ git-gui
bash: git-gui: 未找到命令
$ which git-gui
: (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/lib/jvm/default/bin: 中没有 git-gui: /usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl)

我对正确解决这个问题的方法感到怀疑。

  1. 添加/usr/lib/git-core/到系统范围$PATH?

  2. 创建到/usr/lib/git-core/git-gui下面的符号链接/usr/local/bin

  3. 报告 Arch Linux 软件包中的错误?还是上游?

  4. 什么也不做——这不是一个错误吗?

谢谢。

command-line arch-linux path git

2
推荐指数
1
解决办法
1654
查看次数

如何在 NixOS 中启用 `git gui`?

我已经安装了gittk,并且我能够运行git citool以显示 Git GUI 并创建单个提交,之后应用程序退出。不幸的是git gui命令本身说

git: 'gui' 不是 git 命令。请参阅“git --help”

所以我被困住了。我如何

  1. 启用git gui作为命令
  2. 显示 Git GUI 直到我想退出它?

git nixos

2
推荐指数
1
解决办法
880
查看次数

使用裸 git 存储库自动完成 Zsh 文件

我的 .zshrc 中有这个:

# command completion
autoload -Uz compinit
compinit
Run Code Online (Sandbox Code Playgroud)

通常让我通过选项卡浏览命令、参数和文件。

但对于git --git-dir=<the path> --work-tree="$HOME"(通常是别名)它仅适用于子命令(如添加和推送)和参数,不适用于文件。我希望它也能处理文件。

我尝试将其放入脚本中,如下所示:

#!/usr/bin/env sh

git --git-dir=<the path> --work-tree="$HOME" "$@"
Run Code Online (Sandbox Code Playgroud)

它适用于文件,但子命令和参数会中断。

谢谢。

zsh git autocomplete

2
推荐指数
1
解决办法
869
查看次数