我有兴趣在合理的时间内准确删除 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) 我需要在后台执行任何 cd 命令之后运行 git fetch,并且仅当我位于 git 目录中时。
我尝试了这样的方法:
pushOut=`git push`
Run Code Online (Sandbox Code Playgroud)
但是当我尝试时:
echo $pushOut
Run Code Online (Sandbox Code Playgroud)
我得到一个空字符串
我已经使用 vagrant 在 centOS 6 上安装了厨师工作站。我当前的 git 版本是 1.7.1
中git config --list,却是不接受push.default = simple。如何通过终端将此 git 版本更新到最新版本。
任何帮助表示赞赏!
我一直在浏览Git 基础知识 - 查看提交历史记录 以及 Git 工具 - 搜索,虽然大多数方法看起来很简单,但我一直在尝试找出是否有一种方法可以找出做得最多的作者提交或/和完成项目中大部分提交的提交者。
我确信会有一些方法,例如 -
查找在项目中完成最多提交的作者。
以降序的方式查找提交次数最多的作者。
查找在项目中完成最多提交的提交者
诸如此类的事情。它可以对项目本身的状态进行一些有趣的分析。
人们知道在上述情况下可以做什么吗?
我正在使用 Debian 破坏者。
假设我有一个 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) 我可以使用以下命令在 bash 中打印当前的 git 提交sha1:
git rev-parse --short HEAD
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能只打印 HEAD 的最新提交消息/标题呢?
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)
我对正确解决这个问题的方法感到怀疑。
添加/usr/lib/git-core/到系统范围$PATH?
创建到/usr/lib/git-core/git-gui下面的符号链接/usr/local/bin?
报告 Arch Linux 软件包中的错误?还是上游?
什么也不做——这不是一个错误吗?
谢谢。
我已经安装了git和tk,并且我能够运行git citool以显示 Git GUI 并创建单个提交,之后应用程序退出。不幸的是git gui命令本身说
git: 'gui' 不是 git 命令。请参阅“git --help”
所以我被困住了。我如何
git gui作为命令我的 .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)
它适用于文件,但子命令和参数会中断。
谢谢。
git ×10
bash ×2
zsh ×2
arch-linux ×1
autocomplete ×1
cd-command ×1
centos ×1
command-line ×1
git-log ×1
linux ×1
nixos ×1
password ×1
path ×1
shred ×1
vagrant ×1
variable ×1