Git

在 git 儲存庫中跟踪 /etc/ 並以 root 身份送出時更正使用者名

  • February 24, 2019

我們使用 git 來跟踪/etc/我們伺服器上的更改。

管理員在更改 /etc/ 中的文件時以 root 身份工作,因此他們的送出具有作者

root <root@machinename>

這不是很令人滿意,因為您看不到實際上是哪個管理員進行了更改。

我們可以做些什麼來獲取 git 日誌中的真實管理員名稱?我認為保留儲存庫的本地複製是不可行的,因為我們經常互動更改直到某些東西起作用,而 change-commit-push-seeError-repeat 循環在這裡無濟於事。

git author和committer 名稱可能會受到環境變數GIT_COMMITTER_NAMEGIT_COMMITTER_EMAIL和.GIT_AUTHOR_NAME``GIT_AUTHOR_EMAIL

現在的訣竅是在通過 SSH 連接時將這些變數送出到遠端伺服器:

  1. 定義並導出文件中的變數~/.bashrc
export GIT_AUTHOR_NAME="Christian Weiske"
  1. 通過調整自動使用 SSH 連接發送它們~/.ssh/config
SendEnv LANG LC_* GIT_*

LANG並且LC_*不是必需的,但是 Debian 已經在他們的預設 ssh_config 中,所以我想我也應該送出它們 3. 在遠端伺服器上,調整sshd配置/etc/ssh/sshd_config以接受GIT_*環境變數:

AcceptEnv LANG LC_* GIT_*

瞧 - 一個git commit作為根/etc/導致:

commit 8a4654f13241f05361283a88ce041a0fc24b8ac6
Author: Christian Weiske <christian.weiske@netresearch.de>

以防將來某個時間出現伺服器故障:http: //cweiske.de/tagebuch/carry-git-settings.htm

引用自:https://serverfault.com/questions/256754