假设我在网络上有2台计算机 A 和 B 。现在来自 A 我希望能够在机器 B 上的非裸git存储库上运行 git status 以查看是否有任何更改已经完成(包括尚未添加的本地更改)。
要做到这一点,我会RDP或SSH到 B ,找到回购并执行git状态。
但这样做有更好/自动的方法吗?例如。每次在机器上的仓库中修改文件时发送邮件的git hook B ?
答案 0 :(得分:2)
git hooks不会在文件更改时触发,仅在git命令上触发。你可以写git hook例如预提交或提交后,但不是用于文件更改(您需要一些其他工具,例如inotifywait
)。
但是如果你有ssh访问机器,那就不是那么难了 - 你可以用单一命令完成所有这些:
ssh <host> "git -C <path to repo> status"
但它适用于比1.8.5更新的git。在旧版本中,您需要:
ssh <host> "cd <path to repo> && git status"
请记住在本地comp和远程主机之间交换密钥,以避免每次都输入密码。您还可以在ssh_config文件中为远程主机名提供短别名。然后将上面的行放在单独的脚本中,它将为您节省大量的输入;)