我正在尝试编写一个执行以下操作的 shell 脚本:
- 检查远程 git 存储库是否有任何要提取的更改。
- 如果远程 git 存储库中有更改,请拉取这些更改。
- 循环浏览新的或已修改的文件。
通过我的研究,我发现了一些必要的命令来做这些事情,但我无法让它们在 shell 脚本中一起工作。
这是一个包含我拥有的一些命令的脚本:
#!/bin/sh
#Check if there are any changed files
git --git-dir="/dir/.git" fetch origin
if git --git-dir="/dir/.git" log HEAD..origin/master --oneline
then
#Output the modified files from the last pull
git --git-dir="/dir/.git" diff --name-status ORIG_HEAD..
fi
我无法使用此脚本中的命令的事情是:
- 用于检查是否有变化或不总是正确的 if 语句。我尝试过使用其他 git 命令的 if 语句,它们也总是正确的。似乎 git 不像正常的 shell 命令那样工作,你得到 0 或 1 响应。如何获得这样的 git 命令或其他 git 命令以在 if 语句中返回正确的响应?
- 如何将命令输出的变量分配给数组以查看更改的文件,以便我可以使用 for 循环遍历它们?
如果我的脚本中的命令在这种情况下不会真正起作用,那么有什么更好的方法呢?
编辑:抱歉,当我遍历更改的文件时应该更清楚,我需要在遍历文件之前从远程存储库中提取更改,以便在处理这些文件时获得最新的更改。