使用git總結

2021-10-22 19:49:31 字數 2175 閱讀 2864

1、檢視分支提交版本號:commit id

git rev-parse head
2、檢視日誌

git log

#或git reflog

#或git log --pretty=online

#或git log --graph

3、刪除分支

當乙個分支被廢棄時,我們要做的是刪除分支,在徹底刪除乙個分支時,需要三個步驟

刪除本地分支

刪除遠端分支

刪除本地追蹤分支,即追蹤遠端master的追蹤分支origin/master

刪除本地分支

在刪除分支的時候,我們會使用git branch --delete dev來執行.有時還會通過縮寫git branch -d dev來代替,使用中我們發現還有git branch -d dev的寫法,他們有什麼區別呢?

刪除遠端分支

指令git push origin --delete branch,該指令也會刪除追蹤分支

刪除追蹤分支

通過指令git branch --delete --remotes /

,可以刪除追蹤分支,該操作並沒有真正刪除遠端分支,而是刪除的本地分支和遠端分支的關聯關係,即追蹤分支

如上,通過命令列git push origin --delete branch會刪除遠端分支和追蹤分支,不需要單獨刪除追蹤分支,但是如果通過網頁對遠端分支進行刪除,追蹤分支是不會被刪除的.

在git版本1.6.6之後,可以通過git fetch origin --prune或它的簡寫git fetch origin -p來單獨刪除追蹤分支

補充:git fetch--all--multiple用來獲取多個資源

git --prune用來刪除被廢棄的追蹤分支,該指令可以實現git remote updategit remote prune的功能,使得git remote updategit remote prune沒有太多存在的必要,儘管如此,目前git並沒有刪除這兩個指令的打算.

4、用git checkout切換本地分支從b1到b2時, 如果b1的本地檔案有修改, 為什麼會發生衝突?

b1和b2不再乙個commit id上.

設b1和b2都有123.txt這個檔案(這2個branch下123.txt檔案內容可相同可不相同); 當前在b1下, 修改了一行123.txt, 然後想git checkout b2切換到b2分支, 就會提示衝突! 我覺得這種行為特別不合理, 大家有知道git為什麼這麼設計麼?

我想git至少可以用如下方法避免這種衝突:

git checkout b2時, git可以自己來先git stash, 再git stash pop, pop時嘗試merge**, 真正有衝突解決不了再報給使用者;

同樣的, 你在用git merge b2來merge本地2個分支時, 如果b1有修改的檔案, 那麼同樣會有上面git checkout b2的問題!

解答:你覺得不合理是因為剛好你的需求是「需要保留修改且不要commit」,但實際上你也可能遇到其它情況。git把選擇權交給使用者來應對不同的場景,是比較靈活務實的做法。而且如果真要做成你想的那樣,git也提供了alias機制可以實現,專為自己定製。如果嫌棄alias不能用checkout這個關鍵字,還可以自定義乙個bash函式封裝重寫git命令,使得git checkout

這種格式的命令按照你想的那樣執行,而其它命令和其它格式的checkout扔按原來的樣子執行。豈不是很自由,很靈活!

Git使用總結

1.git branch vv 檢視本地分支與遠端分支的關聯關係 2.git push origin localbranch remotebranch 建立遠端分支remotebranch,該遠端分支的內容與localbranch內容一致 3.git push origin remotebranch...

Git使用總結

在linux上安裝git 命令 tar,config,make,sudo make install 在mac os x上安裝git exe程式執行即可 安裝完成後,在開始選單裡找到 git git bash 蹦出乙個類似命令列視窗的東西,就說明git安裝成功!設定使用者名稱 git config g...

Git使用總結

在windows上安裝git 安裝完成後,在開始選單裡找到 git git bash 蹦出乙個類似命令列視窗的東西,就說明git安裝成功!install git on windows安裝完成後,還需要最後一步設定,在命令列輸入 git config global user.name your nam...