我想使用以下方式推送更改的檔案:
git add .
git commit -m 'build: maintenance'
git push
package-lock.json但如果檔案是唯一更改的檔案,我想忽略這些命令
如何將其配置為僅在至少存在 package-lock.json 以外的任何檔案時才推送更改的檔案
讓它在跨平臺上運行會很好
通過創建一個js腳本來解決,這是解決方案
import { execSync } from 'node:child_process';
/**
* push changed files, ignore if package-lock.json is the only changed file
*/
export function push() {
let changed = execSync(
'git add . && git diff-index --cached --name-only HEAD'
)
.toString()
.split('\n')
.filter((el) => el.trim() !== '' && el.trim() !== 'package-lock.json');
if (changed.length > 0) {
execSync("git commit -m 'build: maintenance' && git push");
}
}
謝謝你們的感謝幫助<3
uj5u.com熱心網友回復:
這列出了具有分階段更改的檔案:
git diff-index --cached --name-only HEAD
假設您使用的是 bash shell,您可以檢查除此之外是否還有其他內容package-lock.json:
git add .
if git diff-index --cached --name-only HEAD | grep -vsxF package-lock.json; then
git commit -m 'build: maintenance'
git push
fi
我假設它package-lock.json在根目錄中;適應口味。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/484662.html
標籤:混帐
下一篇:gitpull:不可能快進,
