Articles of git

使用特定于主机的声明更改ssh ControlPath

我有一种情况,需要使用两个不同的SSH密钥访问相同的SSH主机(GitHub)。 这是没有问题的,我可以很容易地通过别名主机名来设置它。 当这个configuration与我的SSH多路复用configuration相结合时,问题出现了。 我似乎无法用主机特定的声明覆盖我的默认ControlPath。 也许这只是它的工作方式? 也许这是一个错误? 难道我做错了什么? 顺便说一句,我在Mac 10.7上。 这是我的configuration: Host * ControlMaster auto ControlPath ~/.ssh/connections/ssh-%r@%h:%p Host github.com-X TCPKeepAlive yes ServerAliveInterval 60 ControlPersist 1h Hostname github.com User git IdentityFile ~/.ssh/id_rsa_X IdentitiesOnly yes ControlPath ~/.ssh/connections/ssh-%r@%hX:%p Host github.com TCPKeepAlive yes ServerAliveInterval 60 ControlPersist 1h 我已经修改了一点点,但似乎总是得到Host *声明中指定的ControlPath。 ssh -T [email protected] 使用id_rsa_X以正确的用户身份login,但在此创build域套接字: ~/.ssh/connections/[email protected]:22 而不是: ~/.ssh/connections/[email protected]:22 所以后来当我尝试使用id_rsa发出SSH命令时,由于连接复用,我得到了id_rsa_X用户。 换一种说法: ssh -T […]

使用git repo保持远程服务器的最新状态

所以,我知道git钩子,并将在下一步,但要编写一个简单的bash脚本,通过cron运行,以保持远程服务器上的回购最新。 我想像这样工作: cron执行myupdatescript.sh myupdatescript.sh将: cd进入/ my / sites / staging git pull -q原点高手 如果有 东西被拉,那么: 运行咕噜声来构build源代码 yadda yadda yadda 我目前有这样的工作作为一个cron任务,看起来像: */1 * * * * cd /my/sites/staging && git pull -q origin master && grunt production 我试图避免运行我的咕build生成,如果没有任何改变。 我想这一切都归结为我怎么能告诉如果git拉实际拉什么东西,并使用它作为运行我的咕噜生成的条件。 Ubuntu服务器,密钥安装在github上,所有这些好东西。 谢谢你的帮助!

在盐命令的主人的名字

我对盐很新,所以有可能我错过了一些东西,但是我无法弄清楚。 我使用salt作为命令执行工具(到目前为止没有configurationpipe理)。 我无法find一种方法来从盐唾手可得的configuration,并把它们放到git存储库。 我最终试图实现的是给盐主这样的configfiles列表 /etc/ssh/ssh_config /etc/vim/vimrc etc. 并得到salt-master运行获取这些文件,把它放在文件夹中 /srv/salt/minions/configs/minion01/etc/ssh/ssh_config /srv/salt/minions/configs/minion02/etc/ssh/ssh_config 那么我可以让主人把所有的东西都推到我们的git服务器上,并且让所有的configuration版本化。 我知道salt可以处理状态,但我发现的一切都是关于将文件从主文件推送到备用文件以保持状态,但是我只想从所有服务器收集所有更新configuration并自动对其进行版本。 有一个命令叫 salt \* cp.push /etc/ssh/ssh_config 这将configuration文件推到/ var / cache /盐/ minion / minion01 /文件/ etc / ssh / ssh_config,这似乎是完美的,但我不知道如何告诉盐做文件更改(我们有几个服务器和大量的configuration到版本…),只有取得它,如果它已经改变,所以我不必每隔五分钟左右(通过cron)获取所有文件。 任何人都有一个想法如何用盐做到这一点? 问候,Mohrphium

中央服务器上的Git主存储库?

目前我正在与颠覆,并试图切换到Git作为RCS。 也许我不明白git正确的原则,但是有一个很大的问题: git是否需要某种服务器组件负责保存所谓的“主”存储库? 在关于设置git服务器组件的教程中我找不到任何信息。 我想做的是在我的根服务器(Ubuntu)上build立一个中央的git仓库,它是所有开发人员签出和提交的“主”仓库(我认为它被称为“pull”和“push”在git中)来自当地的知识库。 这是可能的,还是git根本没有一个中央服务器组件?

点文件的git回购 – 克隆到homefolder

我正在学习git,我使用的testing用例是保存我的linuxconfiguration文件设置(.bashrc .profile .tmux.conf等) 在我的主机上,repo创build在home文件夹中:base = / home / bvector / files = / home / bvector / .profile等 但是当我去克隆machine2上的repo时,它会进入/ home / bvector / home(因为repo被称为home)base = / home / bvector / home / files = / home / bvector / home / .profile等 有没有办法让克隆回购基于我的家庭文件夹默认情况下的所有文件在正确的位置? 我读过的所有东西都说你不能将一个repo克隆到一个非空目录,这将使得在多台机器上安装repo并能够无缝地提交修改变得更加麻烦。

nginx http server_names_hash_bucket_size

我最近在我的服务器上安装了GitLab&nginx。 一切顺利,但是,我在server_names_hash_bucket_size & server_names_hash_max_size有问题。 我需要增加它,但是我对nginx文档感到困惑。 我不知道把http {}包含在哪里。 我的configuration如下: http { server_names_hash_bucket_size 64; server_names_hash_max_size 512; } server { listen *:80; # eg, listen 192.168.1.1:80; In most cases *:80 is a good idea server_name gitkeeper.adtaco.com; # eg, server_name source.example.com; server_tokens off; # don't show the version number, a security best practice root /home/git/gitlab/public; # individual nginx logs […]

从debian wheezy backports安装git:无论如何,我看到旧的包版本

我需要安装git 1.8。*版本。 我添加了backports到我的sources.list; 通过apt-get remove git删除当前安装的apt-get remove git ; 执行apt-get update来更新我的软件包列表 aptitude show git仍然显示Version: 1:1.7.10.4-1+wheezy1 我做错了什么? 这是我的/etc/apt/sources.list: deb http://ftp.de.debian.org/debian/ wheezy main deb-src http://ftp.de.debian.org/debian/ wheezy main deb http://security.debian.org/ wheezy/updates main deb-src http://security.debian.org/ wheezy/updates main # wheezy-updates, previously known as 'volatile' deb http://ftp.de.debian.org/debian/ wheezy-updates main deb-src http://ftp.de.debian.org/debian/ wheezy-updates main # deb multimedia deb http://www.deb-multimedia.org wheezy main non-free […]

这个bash提示符有什么问题?

我在~/.bashrc文件中使用以下条目来着色提示并显示git仓库的当前分支: PS1='\[\e[1;32m\]\[\u@\h\]\[\e[m\] \[\w\]\[\e[1;1m\]\[$(__git_ps1 " (%s)")\] \[\e[1;1m\]\[$\] \[\e[m\]' 这工作得很好,除了当我使用bash历史logging(向上箭头键几次),命令行变成“缩进”(只是提示的第一个字符保持不变),可见性是: usemmand 当我的用户名是user和命令是command 。

configurationssh不会提示input密码

我已经将git成功安装在我们的Red Hat Linux 5 WS服务器上,并在我们的Intranet上使用它,而不是在我们的防火墙之外。 目前,我在连接时提示input密码,因此我需要执行哪些步骤以确保服务器具有正确的密钥以避免提示input密码? 我相信这是确保公钥存在的问题。 我只是不确定如何设置。

如何跟踪服务器configuration:保持整个“/ etc”在git中

我想保留我的整个/etc文件夹在一个git仓库中,以追踪入侵者未经授权的更改,并找出自己可能犯的错误。 什么是正确的方式来实现这一目标?