git 提交偷懶方法

我從來就是個懶人。

使用git提交的時候,敲一堆命令,繁瑣得很。
首先可以定義別名縮短鍵入的指令

git config --global alias.st status
git config --global alias.ci commit
git config --global alias.df diff
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.mg merge

btw,這樣還是沒解決問題啊,還是很煩啊。
試試看能不能寫個sh腳本,自動提交呢?
有想法就做他,于是有了下面的腳本。

#!/bin/sh
#定義變量
# 用戶自己分支
G_GIT_BRANCH="your_branch"
G_GIT_MASTER_BRANCH="master"
G_GIT_PATH=$(pwd)
echo  "\033[32m 路徑:$G_GIT_PATH  \033[0m"
echo  "\033[32m 分支:$G_GIT_BRANCH  \033[0m"

cd $G_GIT_PATH

function checkGitStatus
{
    STR1="nothing to commit, working tree clean"
    STR2="no changes added to commit"
    STR3="Changes not staged for commit"
    STR4="Changes to be committed"
    STR5="both modified: "
    STR6="Untracked files:"
    OUTTYPE=-1
    out=$(git status)
    result=$(echo $out | grep "$STR5")
    if [[ "$result" != "" ]];then
        OUTTYPE=5
    fi
    if [ "$OUTTYPE" == "-1" ];then
        result=$(echo $out | grep "$STR1")
        if [[ "$result" != "" ]];then
            OUTTYPE=1
        fi
    fi
    if [ "$OUTTYPE" == "-1" ];then
        result=$(echo $out | grep "$STR6")
        if [[ "$result" != "" ]];then
            OUTTYPE=6
        fi
    fi
    if [ "$OUTTYPE" == "-1" ];then
        result=$(echo $out | grep "$STR2")
        if [[ "$result" != "" ]];then
            OUTTYPE=2
        fi
    fi
    if [ "$OUTTYPE" == "-1" ];then
        result=$(echo $out | grep "$STR3")
        if [[ "$result" != "" ]];then
            OUTTYPE=3
        fi
    fi
    if [ "$OUTTYPE" == "-1" ];then
        result=$(echo $out | grep "$STR4")
        if [[ "$result" != "" ]];then
            OUTTYPE=4
        fi
    fi
    if [ "$OUTTYPE" == "-1" ];then
        result=$(echo $out | grep "$STR5")
        if [[ "$result" != "" ]];then
            OUTTYPE=5
        fi
    fi
    if [ "$OUTTYPE" == "1" ];then
        git status
        echo "本地沒什么可提交的了."
        echo "選擇操作 1:Pull master 2:退出"
        read choose
        if [ $choose = "1" ];then
            echo "執行:git checkout $G_GIT_MASTER_BRANCH"
            ret=$(git checkout $G_GIT_MASTER_BRANCH )
            #判斷本地是否還有未提交的??
            echo "執行:git pull origin $G_GIT_MASTER_BRANCH"
            git pull origin $G_GIT_MASTER_BRANCH
            echo "執行:git checkout $G_GIT_BRANCH"
            git checkout $G_GIT_BRANCH
            echo "選擇操作 1:Merge主分支 2:退出"
            read choose
            if [ $choose = "1" ];then
                echo "執行:git merge $G_GIT_MASTER_BRANCH"
                ret=$(git merge $G_GIT_MASTER_BRANCH)
                #TODO:檢查是否有沖突
                kstr="conflicts" #沖突
                result=$(echo $ret | grep "$kstr")
                if [[ "$result" != "" ]];then
                    echo "發現沖突"
                    exit 2
                fi
                echo "選擇操作 1:提交到自己分支 2:退出"
                read choose
                if [ $choose = "1" ];then
                    echo "執行:git push origin $G_GIT_BRANCH"
                    git push origin $G_GIT_BRANCH
                    echo "結束,退出腳本"
                    exit 2  
                else
                    echo "退出腳本"
                    exit 2  
                fi
            else
                echo "退出腳本"
                exit 2  
            fi
        else
            echo "輸入錯誤,退出腳本"
            exit 2  
        fi
    elif [ "$OUTTYPE" = "2" ]||[ "$OUTTYPE" = "6" ];then #
        git status
        echo "發現有修改"
        echo "選擇操作 1:執行'git add -A' 2:退出手動處理"
        read choose
        if [ $choose = "1" ];then
           git add -A
        elif [ $choose = "2" ];then
            echo "手動提交,退出腳本"
            exit 2  
        else
            echo "輸入錯誤,退出腳本"
            exit 2  
        fi
    elif [ "$OUTTYPE" = "3" ];then
        git status
        echo "發現有修改"
        echo "選擇操作 1:執行'git add -A' 2:退出手動處理"
        read choose
        if [ $choose = "1" ];then
           git add -A
        elif [ $choose = "2" ];then
            echo "手動提交,退出腳本"
            exit 2  
        else
            echo "輸入錯誤,退出腳本"
            exit 2  
        fi
    elif [ "$OUTTYPE" = "4" ];then
        echo "發現有修改"
        echo "選擇操作 1:執行'git commit -m 備注' 2:退出"
        read choose
        if [ $choose = "1" ];then
            echo "\033[31m 輸入提交類型:          \033[0m"
            echo "\033[32m:feat(新功能feature)     \033[0m"
            echo "\033[32m:fix(修補bug)           \033[0m"
            echo "\033[32m:docs(文檔documentation) \033[0m"
            echo "\033[32m:style(格式)            \033[0m"
            echo "\033[32m:refactor(重構)         \033[0m"
            echo "\033[32m:test(增加測試)       \033[0m"
            echo "\033[32m:chore(構建過程或輔助工具的變動) \033[0m"
            read commitType
            echo "輸入您的commit文字"
            read commitStr
            git commit -m " $commitType commit:$commitStr"
            echo "已經 commit"

        elif [ $choose = "2" ];then
            echo "手動提交,退出腳本"
            exit 2  
        else
            echo "輸入錯誤,退出腳本"
            exit 2  
        fi
    elif [ "$OUTTYPE" = "5" ];then
        echo "發現沖突!!!"
        exit 2  
    fi
}

while true;
do
    checkGitStatus
done

將腳本命名 autogit.sh,放在git目錄。在ignore文件里面忽略本文件。
然后就可以用啦!

在目錄直接敲 sh autogit.sh,然后一路敲 1,回車。

如果遇到每次都要求輸入帳號密碼,可以設置長久存儲

git config --global credential.helper store
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容

  • 本文為 Git教程的學習筆記,教程源自廖雪峰的博客。這是一個由淺入深,學完后能立刻上手的Git教程。另,附上另一本...
    七弦桐語閱讀 6,263評論 5 47
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,781評論 18 139
  • + (NSString *)pathWithComponents(NSArray *)components 根據c...
    _舊時光閱讀 796評論 0 0
  • 耶和華是我的牧者,我必不至于缺乏! 耶和華要保護你,從今時直到永遠,你出你入耶和華都要保護你。 苦難是恩典,患難是...
    凌賢武閱讀 2,041評論 0 0
  • 眼珠好難畫,有空再重畫~ 變形的檸檬~ 好考驗耐心,一個下午都在畫,是兩個課時,畫到最后沒耐心了。 不過還是很開心...
    豬小賢閱讀 225評論 1 0