Git日誌壓縮

2021-10-01 10:53:21 字數 1500 閱讀 8437

在日常功能研發時,可能會在本地倉庫commit多次,但這些commit對於遠端來說,當做乙個原子操作push是最合適的,此時應該怎麼做?

1. commit --amend

commit時就合併到最後一次commit中,命令:

git commit --amend
此時,當前commit的內容會與上一次commit的內容合併。但是,如果上一次commit的內容已經push了,一定不要使用--amend,否則會將上一次已經push的節點在本地與本次commit內容合併,生成乙個新的guid,也就是上次push的內容,同時存在兩個git節點中。解決方式可以參考一下

2.進行日誌壓縮。具體操作:

2.1 首先檢視一下log,以下為最近的四次commit,想將第2次提交和第3次提交日誌進行合併

$ git log --oneline -4

18fa9a9 commit 4th

d08c408 commit 3th

fe15bdb commit 2nd

ecd66f5 commit 1st

2.2 然後開始執行日誌壓縮(注意,這個命令和log命令,顯示的順序是相反的)

$ git rebase -i head~4

1 pick ecd66f5 commit 1st

2 pick fe15bdb commit 2nd

3 pick d08c408 commit 3th

4 pick 18fa9a9 commit 4th

2.3 然後修改第2條的字串pick為squash,所有squash的日誌都會被合併到從它往下最近的非squash的日誌中,如下為修改後的狀態,然後進行儲存退出

$ git rebase -i head~4

1 pick ecd66f5 commit 1st

2 squash fe15bdb commit 2nd

3 pick d08c408 commit 3th

4 pick 18fa9a9 commit 4th

2.4 儲存退出後,會要你修改log,預設的log是被合併的多條commit換行顯示的,可以編輯,然後儲存退出。

2.5 如果成功了,命令列中會顯示successfully rebased 字樣。

我們可以最後再檢查一下,看是否壓縮的是我們想要的:

$ git log --oneline -4 

cf4159b commit 4th

9d73407 commit----compress 2ndand 3th

ecd66f5 commit 1st

2.6 如果過程**現了什麼異常,可以直接使用 git rebase --abort回退到最初狀態

2.7 確認之後 就可以git push了

日誌打包壓縮

這幾天,伺服器日誌漲的很快。因為沒有日誌伺服器,都是寫在本地。要保留三個月,打包,壓縮能節省些空間。做個記錄。顯示當前系統前兩個的日期 date d 2 days ago y m d bin sh 會員服務的日誌 路徑 opt logs member ma logs 保留三天的日誌。打包壓縮存在當前...

壓縮mysql binlog日誌

伺服器硬碟太貴了 mysql的binlog日誌增長太快了 需要定時壓縮一下 然後清除 清除步驟 建立清除shell vim bzbinlog.sh bin sh tar jcvpf date mysqlbinlogdir mysql bin.000108.tar.bz2 usr local mysq...

SQL 壓縮日誌

backup log 資料庫名稱 with no log go dump transaction 資料庫名稱 with no log go dbcc shrinkdatabase 資料庫名稱 gouse 資料庫名稱 goalter database 資料庫名稱 set recovery 設定簡單恢復...