我正在尝试在我的 Red Hat Enterprise Linux 6.5 服务器上安装 git,但遇到了麻烦。我无法使用 yum 找到 git 的包依赖项。
[root@FOOBAR mydir]# yum install curl-devel expat-devel gettext-devel \
> openssl-devel zlib-devel
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process
No package curl-devel available.
No package expat-devel available.
No package gettext-devel available.
No package openssl-devel available.
No package zlib-devel available.
Error: Nothing to do
Run Code Online (Sandbox Code Playgroud)
在阅读了一些论坛帖子后,我在这里找到了 EPEL 包,并安装了它:
[root@FOOBAR mydir]# …Run Code Online (Sandbox Code Playgroud) 使用command=""in authorized_keys,我可以限制可以由特定键运行的命令。
我需要允许哪些命令才能拥有正常运行的 git remote?
从临Git的书,我可以推断git-upload-pack和git-receive-pack是必需的,但有什么事吗?
注意我仍然希望能够正常登录用户,只是不能使用此密钥。
我正在为SSH Agent Forwarding的概念苦苦挣扎。
这是我到目前为止所做的:
现在我想连接到像 ssh 这样的服务器myserver@myserver.be。
然后我通常会使用ssh-keygen在服务器上创建一个密钥,然后再次复制公钥并将其添加到我的 bitbucket SSH 密钥中。之后,我可以克隆我的 SSH 存储库并拉/推到 bitbucket 存储库。但这不是这样做的方法。
如何确保不必在服务器上创建密钥?我读过很多教程像这样,但我仍然使用ssh代理转发挣扎。
更新:
我已经尝试完成本教程,但我已经停留在第 1 步。他们说您需要将以下文本添加到您的配置文件(位于 ~/.ssh/config)中:
Host example.com
ForwardAgent yes
Run Code Online (Sandbox Code Playgroud)
在第一步之前,我的配置文件如下所示:
Host bitbucket.org
IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
在这一步之后,它看起来像这样:
Host bitbucket.org
IdentityFile ~/.ssh/id_rsa
Host mysite.be
ForwardAgent yes
Run Code Online (Sandbox Code Playgroud)
要尝试它是否有效,您需要在您的服务器上执行以下命令:
ssh -T git@bitbucket.org
Run Code Online (Sandbox Code Playgroud)
试过了,但Permission denied (publickey).我的服务器上出现错误。
所以我刚刚安装了最新的 git,以及官方的 mac 安装程序。我在小牛队。
可悲的是, git --version 仍然是
git version 1.9.3 (Apple Git-50)
Run Code Online (Sandbox Code Playgroud)
哪个 git 给了我:
/usr/bin/git
Run Code Online (Sandbox Code Playgroud)
相反,git 安装程序将更新的 git 安装在
/urs/local/git
Run Code Online (Sandbox Code Playgroud)
回显 $PATH 给出:
[some hidden paths]:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin/:/usr/local/bin
Run Code Online (Sandbox Code Playgroud)
如何让我的 mac 使用正确的更新 git?
我正在运行 bash
GNU bash,版本 4.3.25(1)-release (x86_64-apple-darwin13.4.0)
在 OS X 10.10.1 上。大约一周前,我注意到自动完成已停止工作,但仅适用于 git。我正在使用此脚本进行 git 自动完成:
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
在它停止工作几天后,我注意到自动完成仍然适用于以字母 's' 开头的命令(例如 status、show、stash)。之后,我尝试自动完成此命令:
git c
Run Code Online (Sandbox Code Playgroud)
这是输出:
用户:~$ git c^[[m^[[K
c^[[m^[[Kat-file
c^[[m^[[Kheck-attr
c^[[m^[[Kheck-ignore
c^[[m^[[Kheck-mailmap
c^[[m^] [[Kheck-ref-format
c^[[m^[[Kheckout
c^[[m^[[Kheckout-index
c^[[m^[[Kherry
c^[[m^[[Kheckout c^[[m^[]
] [m^[[Kitool
c^[[m^[[Klean
c^[[m^[[Klone
c^[[m^[[Kolumn
c^[[m^[[Kommit
c^[[m^[[] Kommit-tree
c^[[m^[[Konfig
c^[[m^[[Kount-objects
c^[[m^[[Kredential
c^[[m^[[Kredential-cache
c^[[m^[] [Kredential-osxkeychain
c^[[m^[[Kredential-store
c^[[m^[[Kvsexportcommit
c^[[m^[[Kvsimport
c^[[m^[[Kvsserver]
如您所见,在每个命令的第一个字母之后插入了一些奇怪的(转义?)字符(除“s”之外的所有其他字母也是如此)。由于这些字符,自动完成无法按预期工作。
有没有人知道可能导致这种情况的原因?我什至不知道如何调试这个,所以欢迎任何提示。
我设置了一个共享的 git 存储库,用户使用ssh协议从中提取。
我想以一种只有特定用户组(例如git_group)中的用户可以访问存储库的方式设置权限。我可以使用以下方法使该组可以访问创建的文件:
chmod g+s。递归:find . -type d print0 | xargs -0 chmod g+s。sudo setfacl -R -m g:git_group:rwx . 和sudo setfacl -R -d -m g:git_group:rwx .这一切似乎都很好,直到您从git_group. 当该用户推送提交时,他们成为 git 存储库中某些文件的所有者。从组中移除后,该用户仍然可以修改这些文件,并且某些 git 命令仍然可能会成功。
更改 git 存储库中所有文件的所有者将拒绝用户访问存储库,但是是否可以设置存储库以便仅通过将用户从组中删除来拒绝用户访问?
据我所知,使用基本的 linux 文件权限,组被授予比所有者更多的权限会导致未定义的行为。
git如果找不到命令,如何告诉我的 zsh 自动尝试前面的命令?例如,我想运行$ status,如果没有statusin $PATH,我的 zsh 应该尝试git status。
我可以在提示显示GIT时,当前目录有/包含一个.git文件夹?有没有办法做到这一点?我当前的提示定义如下:
export PS1="[\u@\h] \w $ "
Run Code Online (Sandbox Code Playgroud)
所以,我的提示是这样的:
[user@computer] ~/workspace $
Run Code Online (Sandbox Code Playgroud)
我希望它动态地看起来像这样:
[user@computer] ~/workspace GIT $
Run Code Online (Sandbox Code Playgroud) 我基本上是想让我的 PS1 在 git repo 中看起来像这样:
$ ~/Projects/Blah (master):
Run Code Online (Sandbox Code Playgroud)
或者,如果我不在 Git 存储库中,我希望它看起来像这样:
$ ~/Projects/Blah:
Run Code Online (Sandbox Code Playgroud)
这是我目前的 PS1:
export PS1="$ \w \$(__git_ps1): "
Run Code Online (Sandbox Code Playgroud)
它适用于 git repo 输出,但问题是如果我不在 git repo 中,输出如下所示:
$ ~/Projects/Blah :
Run Code Online (Sandbox Code Playgroud)
如果它不是 git repo,我真的不想要那个空间,有什么方法可以在我的 PS1 中指定它吗?