頭資訊 系統掌握Git之 分離頭指標與合併操作

2021-10-14 16:23:32 字數 4163 閱讀 2702

分離頭指標表示我們在工作在沒用分支的情況下,我們通過git log 列印日誌,選擇中間的乙個commitid,然後進行checkout操作,git checkout 82fdac4baac702ad0473c講git切換到這次提交。在通過git branch檢視分支,可見當前分支在(頭指標分離於 82fdac4)。操作記錄如下:

git checkout 82fdac4baac702ad0473c # 切換命令

注意:正在切換到 '82fdac4baac702ad0473c'。

您正處於分離頭指標狀態。您可以檢視、做試驗性的修改及提交,並且您可以在切換

回乙個分支時,丟棄在此狀態下所做的提交而不對分支造成影響。

如果您想要通過建立分支來保留在此狀態下所做的提交,您可以通過在 switch 命令

中新增引數 -c 來實現(現在或稍後)。例如:

git switch -c 《新分支名》

或者撤銷此操作:

git switch -

通過將配置變數 advice.detachedhead 設定為 false 來關閉此建議

head 目前位於 82fdac4 測試config system

mrli@localhost git_learning % git branch

* (頭指標分離於 82fdac4)

master

temp

危險操作:如果我們當前位於分離頭指標,不要基礎改分支進行commit操作,因為在分離頭指標的commit不跟任何分支掛鉤,當我們切換到具體的master分支或者develop分支的時候,這些提交都看不到了。

head:head不僅表示當前的分支,還表示當前分支的最頂層commit。我們可以使用head代指最近一次提交。

git diff head head^ # 比較最近兩次提交的差異

git branch -d temp # 如果報錯使用-d

git branch -d temp

git commit --amend #執行之後會跳轉到提交資訊編輯頁面,編輯資訊之後儲存即可。
如果我們要修改倒數第二次提交的message資訊,我們需要使用git rebase -i加上要修改的提交的上一次提交commitid,也就是倒數第三次提交的commitid。

mrli@localhost git_learning % git log # 檢視日誌

commit ee7b88abfe0ff8f78cad5a994b2f98a091c70f74 (head -> master)

author: zs_local date: thu apr 2 20:45:59 2020 +0800

修改為123

commit 7cd3ecd648aa388469973c12533af047676f2feb # 要修改這一次的提交資訊

author: zs_local date: sun mar 29 17:49:58 2020 +0800

修改提交資訊

commit 82fdac4baac702ad0473c96948795d88132d5a2e # 使用這一次的commit

author: mr li date: sun mar 29 17:13:23 2020 +0800

測試config system

commit 72b4ca8f0981f6d39a337c091bfbb8683b7ee7cf

author: zs_local date: sun mar 29 17:04:20 2020 +0800

測試config local

commit 96068ca86b6b4b646ff69fcb3ab3bc34d543dc39

author: mr li date: sun mar 29 10:28:20 2020 +0800

初識git

mrli@localhost git_learning % git rebase -i 82fdac4baac702 #修改命令

如下圖所示,使用reword 簡寫為 r,標記要修改的資訊。最後儲存,進入下一次提交。

我們依然使用的是git rebase -i 操作,選取的commit依然上要合併commit的前一次提交。

mrli@localhost git_learning % git log # 檢視提交歷史

commit ee7b88abfe0ff8f78cad5a994b2f98a091c70f74 (head -> master)

author: zs_local date: thu apr 2 20:45:59 2020 +0800

修改為123

pick 72b4ca8 測試config local

# 這是乙個 4 個提交的組合。

commit 7cd3ecd648aa388469973c12533af047676f2feb

author: zs_local date: sun mar 29 17:49:58 2020 +0800

修改提交資訊

commit 82fdac4baac702ad0473c96948795d88132d5a2e

author: mr li date: sun mar 29 17:13:23 2020 +0800

測試config system

commit 72b4ca8f0981f6d39a337c091bfbb8683b7ee7cf

author: zs_local date: sun mar 29 17:04:20 2020 +0800

測試config local

commit 96068ca86b6b4b646ff69fcb3ab3bc34d543dc39

author: mr li date: sun mar 29 10:28:20 2020 +0800

初識git

mrli@localhost git_learning % git rebase -i 96068ca86b6 # 執行變基操作,

[分離頭指標 1fab332] 合併4次提交

date: sun mar 29 17:04:20 2020 +0800

1 file changed, 1 insertion(+), 1 deletion(-)

successfully rebased and updated refs/heads/master.

mrli@localhost git_learning % git log

commit 1fab33204eb275ffd1f68dc0fb876f9feb978112 (head -> master)

author: zs_local date: sun mar 29 17:04:20 2020 +0800

合併4次提交

測試config local

測試config system

修改提交資訊

修改為123

commit 96068ca86b6b4b646ff69fcb3ab3bc34d543dc39

author: mr li date: sun mar 29 10:28:20 2020 +0800

初識git

mrli@localhost git_learning % git branch

* master

temp

這裡在編輯的時候選用合併的命令squash簡寫是s。

與上面操作的區別需要將間隔合併的commit調整到相鄰的位置。

系統掌握SQL Server增刪改查

建立資料庫 create database test 建立表 create table 職工表 在這裡插入 片 職工編號 int identity 1 1 primary key,職工號 varchar 50 unique 倉庫號 varchar 50 工資 int check 基本工資 800an...

資訊不是資訊系統

資訊不是資訊系統 資訊 資訊處理工具 使用人 資訊系統 不需要資訊的業務活動要資訊幹什麼,資訊只對需要他的人有用。資訊系統的最終對接物件是人腦這個生物智慧型資訊系統,才能發揮他的價值 寧無資訊,勿假資訊。現在的資訊科技的價值主要還是體現在獲取,傳輸層次,加工與運用施效還不足。資訊科技的價值在哪?對業...

資訊系統監理之資訊系統專案管理

前言 去年參加了資訊系統監理師的考評,遺憾,沒過。一度為這事難過,今年還準備考一次,這次,通過與否不是關鍵了,努力過了,就夠了吧。進入正題,這一次,來介紹一下資訊系統監理中的專案管理十四個要素,應該是考試的重點。ready?go!一 立項管理 1 立項階段的主要工作內容 1 立項準備 準確描述專案的...