workspace:工作區
index / stage:暫存區
repository:本地倉庫
remote:遠端倉庫
注:--hard 丢棄working directory中内容的修改 --soft 保留working directory中内容的修改
使用指令:# git commit --amend 如:
(1)git log指令檢視到最新一次的commit注釋資訊為:“注釋資訊”
(2)# git commit --amend
以上指令執行後會調到文本編輯視窗
将這裡的注釋資訊改成你想要的注釋資訊,如“修改注釋資訊”,儲存
(3)重新push到服務端即可
此時服務端的注釋資訊已經是剛修改的注釋資訊了
注:修改最新一次commit的注釋資訊還有一種更簡單的方式,如下: # git commit --amend -m "送出注釋資訊"
(1)使用 git rebase -i head~2(~2指列出目前版本的前2條送出記錄)
此時會跳轉到文本編輯視窗
共列出了兩條曆史送出資訊,要修改哪條就将哪條的 pick 字段修改為 edit ,如将第一條改成edit,然後儲存退出,這是可通過git log指令可以發現現在git的最新一次送出已經變成你選中的那條了。
(2)然後就可以通過 git commit --amend指令來進行修改了
(3)修改完後使用 git rebase --continue 指令傳回
(4)git push origin master -f
(1)使用git log檢視曆史送出資訊,如
(2)如想回退到 ”新增index.html頁面“這個送出版本
注:--hard 參數在回退版本後會抛棄目前工作區的修改 --soft 參數在回退版本後可以保留目前工作區的修改
(3)push到遠端服務端
注:-f 為強制推送,不然伺服器會拒絕推送
比如要将已送出的3個commit合并為一個commit
(1)撤銷最新的3個commit
(2)建立一個commit送出
注:參數 -am 與 -m 不同的是 -m 送出需要先 git add <檔案> 加入stage,然後才能commit送出,而 -am 相當于 add 與 commit的組合,可以直接commit,但是前提是被改動的檔案已被 tracked 作者:feinik 來源:51cto