git/bash 是否有任何内置方式来将所有命令和输出提交到一个文件中并自动提交?

git/bash 是否有任何内置方式来将所有命令和输出提交到一个文件中并自动提交?

目前我正在使用一些 CLI。我想要一个包含提交之前运行的命令的文件。

command: commit message 1
// All commands ran prior to this
output: <output for above command>
command: ls
output: <output for above command>
command: rake bootstrap
output: <output for above command>
command: bundle exec
output: <output for above command>


commit message 2
// All commands ran prior to this
command: mkdir newfile
output: <output for above command>
command: pwd
output: <output for above command>
command: gem install

我这样做是因为我正在做一些环境设置,但不想提交所有文件,但我想提交导致它的命令。

我已经知道我可以,~/.bash_history但缺少:

  • 没有输出(我知道这个要求太高了,所以如果这不可行,那完全没问题,但我需要实现其他要求)
  • 不允许我分开命令并附加每个犯罪

我正在考虑git hook在每次提交之前使用来提取命令.bash_history,然后在提交后清除命令,但我只是想看看是否有更整洁或内置的方法来实现这一点。

答案1

如果要跟踪终端会话的输入和输出,通常使用的工具是script。一旦运行,它将启动一个 shell,并将每个输出(终端转义码等)记录到一个文件中。

这并不会自动通过提交分离出您的数据,但您将获得运行了哪些命令的输出,包括截断的提交哈希,并且如果您还保存了数据的时间戳,那么您可以使用 reflog 自动关联这些更改(请参阅git reflog --help)。

相关内容