[英]"git push origin master" gives weird behavior in bash script
我的 bashrc 文件中有這個簡單的函數
function aupgrade {
cat ~/.bash_aliases > ~/bash/.bash_aliases
cd ~/bash
git add .
if [[ $1 == "" ]]; then
git commit -m "Update"
else
git commit -m "$1"
fi
git push origin master
cd - 1>/dev/null
}
這個函數有一個目的,這是預期的行為:
首先,將 bash 存儲庫中 .bash_aliases 文件的內容替換為cat ~/.bash_aliases
的標准輸出
其次,進入~/bash
目錄,這是一個 git 存儲庫
三、階段性變化
第四,如果在調用aupgrade
函數時下面的參數沒有任何內容,只需提交“更新”消息,但如果用戶寫了一個參數,比如aupgrade "New commit!"
, 使用諸如消息之類的參數提交更改, git commit -m $1
五、推動變化
六、回到上一目錄
但是,它不會那樣做,而是會那樣做:
首先,將 bash 存儲庫中 .bash_aliases 文件的內容替換為cat ~/.bash_aliases
的標准輸出
其次,進入~/bash
目錄,這是一個 git 存儲庫
三、階段性變化
第四,盡管有爭論,但提交“更新”消息
五、推動變化
六、回到上一目錄
這很奇怪。 這看起來像是git push origin master
line 的產物。 這不是條件問題,因為當我編寫另一個這樣的函數但沒有git push origin master
line 時,它按預期工作。
為什么會發生這種情況? 有什么解決辦法嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.