标签: git

如何将标准输出通过管道传输到另一个程序?

我正在尝试为我的代码设置一个 linter,我只想对当前分支中已更改的 coffeescript 文件进行 lint。因此,我使用git以下命令生成文件列表:

git diff --name-only develop | grep coffee$
Run Code Online (Sandbox Code Playgroud)

这给了我一个我想要处理的文件的漂亮列表,但我不记得如何将它传递给 linting 程序来实际完成工作。基本上我想要类似于find's 的东西-exec

find . -name \*.coffee -exec ./node_modules/.bin/coffeelint '{}' \;
Run Code Online (Sandbox Code Playgroud)

谢谢!

shell pipe git stdout

6
推荐指数
1
解决办法
1928
查看次数

使用 git ls-remote like 命令获取上次提交消息、作者和哈希

我正在寻找一种使用git ls-remotelike 命令从远程存储库获取三个信息的方法。我想在 .bash 文件中运行的 bash 脚本中使用它cron。目前,如果我这样做

git ls-remote https://github.com/torvalds/linux.git master
Run Code Online (Sandbox Code Playgroud)

我得到了 master 分支上的最后一个提交哈希:

54e514b91b95d6441c12a7955addfb9f9d2afc65    refs/heads/master
Run Code Online (Sandbox Code Playgroud)

有没有办法获取提交信息和提交作者?

remote git

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

如何从patchwork下载完整的补丁系列?

我要下载补丁系列RFC PATCH 00/26 i.MX5/6 IPUv3 CSI/IC

在拼凑中,我可以访问单个补丁https://patchwork.linuxtv.org/patch/24331/。但是下载 26 个补丁然后一个一个地应用它们变得乏味。有没有办法通过拼凑或其他方式下载完整的补丁系列?

问题如何从邮件列表中获取 linux 内核补丁集?建议 marc.info 和 lkml.org 下载单个补丁,但我想要一次整个系列。我怎么做?

patch git linux-kernel

6
推荐指数
1
解决办法
3967
查看次数

Git Bash - ls 显示 git repo 文件夹

我有一个文件夹 /c/Tools,其中包含三个文件夹。

我想要一个像下面这样的命令

$ ls --show-repositories
Run Code Online (Sandbox Code Playgroud)

Tools 不是 git 存储库,但 Tools/MyProject 和 Tools/MyApp 都是。我想要的输出是:

drwxr-xr-x 1 0018121 Domain Users    0 Dec 14 14:33 MyProject/ (develop)
drwxr-xr-x 1 0018121 Domain Users    0 Dec 14 14:17 Data/
drwxr-xr-x 1 0018121 Domain Users    0 Dec 14 12:08 MyApp/ (master)
-rw-r--r-- 1 0018121 Domain Users 399K Aug  4 10:41 readme.txt
-rw-r--r-- 1 0018121 Domain Users 136K Aug  4 10:20 image.jpg
Run Code Online (Sandbox Code Playgroud)

所以从父文件夹我可以判断子文件夹是否是当前有效的 git 存储库(以及当前签出的分支)

谢谢

bash git

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

zsh:使用 Git 命令完成功能的 Tab 补全

在 zsh 中,我使用以下函数通过一个命令删除本地和远程分支

gpDo () {
    git branch -d "$1" && git push --delete origin "$1"
}
Run Code Online (Sandbox Code Playgroud)

目前,Git 分支的自动完成功能不起作用。我必须手动输入整个分支名称。我怎样才能让选项卡完成工作为这样的功能?

zsh git autocomplete function

6
推荐指数
1
解决办法
1206
查看次数

我嵌套了 git repos,它会导致问题吗?

历史

  1. 我安装了 etckeeper
  2. 我决定跟踪例如 shorewall 防火墙配置作为它自己的 git 存储库。我想我希望更容易查看特定的配置更改。我决定不再需要 etckeeper 并卸载了它。所以没有冲突,除了......
  3. 在重新考虑 etckeeper 时,我注意到我实际上并没有删除/etc/.git.

在我意识到之前,我会认为这git init会拒绝创建嵌套的 git 存储库。

如果我简单地继续使用 etckeeper,我会担心外部 git 可能会因为跟踪内部 .git 目录而变得臃肿。或者,它可能会忽略作为单独 git 存储库的目录中的所有文件。

所以我很好奇,可能出什么问题了?

git

6
推荐指数
1
解决办法
6641
查看次数

`git diff` 与 `diff` 相关吗?

git diff有关diff

  1. git diff基于diff?

  2. 的命令行语法git diff类似于那个的diff?学习一种对使用另一种有很大帮助吗?

  3. 它们的输出文件是否遵循相同的格式?它们可以同时被git patch和 使用patch吗?(有git patch吗?和 有什么关系patch?)

谢谢。

diff git

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

如何使用普通用户的 ssh 密钥但具有 sudo 文件权限的任何命令(例如 git)

我可以按如下方式克隆一个项目:

$ git clone git@mysite.com:root/myproject.git ~/bla
Run Code Online (Sandbox Code Playgroud)

但现在我想将它克隆到/var/www. 所以我尝试

$ git clone git@mysite.com:root/myproject.git ~/var/www
Run Code Online (Sandbox Code Playgroud)

但是,唉,我无权写入/var/www. Sudo 来救援!

$ sudo git clone git@mysite.com:root/myproject.git ~/var/www
Cloning into 'www'...
git@mysite.com's password:
Run Code Online (Sandbox Code Playgroud)

这是什么?我被要求输入密码?我们不应该不需要臭密码!

我显然是将 root 用户的 ssh 密钥与请求一起发送,但由于它们尚未导入到 git 存储库中,因此我被拒绝了。过去,我的解决方案是临时更改文件夹的权限或先将其克隆到我有权访问的某个位置,然后使用 sudo 移动它,但我想了解这样做的正确方法。

那么......我如何使用普通用户的 ssh 密钥但 sudo 文件权限使用 git?

permissions sudo git files

6
推荐指数
1
解决办法
5588
查看次数

`less` 在从 Bash 和 Git 调用时表现不同

当我查看一个很大的差异时git diff,它会被分页less。这是通过打开另一个窗口,从检查的数据证实ps -aux/proc

但是,当less被 Git 调用时,它不会将终端内容在命中后恢复到之前的状态q(差异内容保留在终端中)。但是当我这样做时

git diff commit1 commit2 --color | less -R
Run Code Online (Sandbox Code Playgroud)

并按less键退出q,内容消失,终端恢复到之前的状态。

更有趣的是,如果我做这些

export PAGER=less LESS='-R'
Run Code Online (Sandbox Code Playgroud)

和 invoke git diff(或任何其他调用寻呼机的命令)的less行为与直接从 Bash shell 调用一样。

一世

这是描述我的问题的简短屏幕截图。在左侧窗格中,命令执行如下:

unset PAGER GIT_PAGER LESS
git diff HEAD^ HEAD
Run Code Online (Sandbox Code Playgroud)

在右侧窗格中,您会看到命令。最新的提交是 100 多行y写入文件。在两个窗格上less都使用 key 退出q

谁能告诉我有什么不同并解释为什么?

less git

6
推荐指数
1
解决办法
1128
查看次数

用于在 Git 存储库中跨分支和历史搜索的工具

我正在寻找一种工具,或对脚本的建议,它能够根据文件名和文件内容(find/ 之grep类)在 Git 存储库中搜索文件。它不仅需要能够在当前签出的分支中进行搜索,而且还需要能够通过该分支的历史记录以及在其他分支中进行搜索。

我拥有的 Git 存储库的一个非常具体的示例是结帐dspinellis'unix-history-repo。我经常在那里寻找事物的历史实现,但是追踪文件很痛苦,因为我经常需要猜测我需要查看哪个分支(该存储库中有 165 个分支)。

事情的例子,我想用这个工具做的找到wow命令,这可能是一个外部命令内置命令shcsh在某些时候,如果它存在一些早期的BSD Unix的部分(如果它存在一点)。为此,我想在dspinellis 的 Git 存储库的 165 个分支中搜索wow.*文件名模式,以及可能在某个时候包含wowC 函数的文件。

software-rec git search

6
推荐指数
1
解决办法
2705
查看次数

标签 统计

git ×10

autocomplete ×1

bash ×1

diff ×1

files ×1

function ×1

less ×1

linux-kernel ×1

patch ×1

permissions ×1

pipe ×1

remote ×1

search ×1

shell ×1

software-rec ×1

stdout ×1

sudo ×1

zsh ×1