每次在linux都要重新一遍一遍敲着這些重復的代碼,我想着能夠優化一下,做個一鍵腳本,減少重復勞動。
#!/bin/bash git status read -r -p "是否繼續提交? [Y/n] " input case $input in [yY][eE][sS]|[yY]) echo "繼續提交" git add -A git commit -m $1 git push origin $2 exit 1 ;; [nN][oO]|[nN]) echo "中斷提交" exit 1 ;; *) echo "輸入錯誤,請重新輸入" ;; esac
實際操作的時候命令行輸入:./gitcommit.sh commitMessage branchName就可以了
循環提交腳本
#!/bin/bash
git status
while true;
do
read -r -p "是否繼續提交? [Y/n] " input
case $input in
[yY][eE][sS]|[yY])
echo "繼續提交"
git add -A
git commit -m $1
git push origin $2
exit 1
;;
[nN][oO]|[nN])
echo "中斷提交"
exit 1
;;
*)
echo "輸入錯誤,請重新輸入"
;;
esac
done
操作跟單次提交一樣
有時候,我們本地開發提交代碼用svn,提交到代碼倉庫,然后代碼倉庫推送到目標服務器
#!/bin/bash cd 代碼路徑 svn up version=`svnversion |sed 's/^.*://' |sed 's/[A-Z]*$//'` #version=`svn info|grep "Last Changed Rev"` branch=倉庫地址 git status read -r -p "是否繼續提交? [Y/n] " input case $input in [yY][eE][sS]|[yY]) echo "繼續提交" git add . git commit -m $version git push $branch master ;; [nN][oO]|[nN]) echo "中斷提交" exit 1 ;; *) echo "輸入錯誤" exit 1 ;; esac
執行的時候直接./gitbash.sh 就好了,因為提交信息跟倉庫地址我是直接寫死的,
順便總結一下git add的幾個區別
git add -A 保存所有的修改
git add . 保存新的添加和修改,但是不包括刪除
git add -u 保存修改和刪除,但是不包括新建文件
svn的查詢某一版本號的修改內容
查看history
svn log -l count /file/path #查看某一文件的最近count次提交信息
比較不同版本
svn diff -r PREV:COMMITTED /file/path #查看最近一次提交的改動
svn diff -r version1:version2 /file/path #查看指定版本間的不同
svn info跟svnversion這兩個命令的區別
svn info|grep "Last Changed Rev" #得到當前路徑文件提交的最后一次版本號
svnversion |sed 's/^.*://' |sed 's/[A-Z]*$//' #得到當前倉庫地址的最新版本號