吃了不懂git的虧

2021-10-08 01:13:23 字數 1949 閱讀 7520

工作中老是遇到分支衝突問題,推分支失敗,擔心會覆蓋**等一系列問題,十分難受。今天花點時間學習下

working tree 當前的工作區域

index/stage 暫存區域,和git stash命令暫存的地方不一樣。使用git add xx,就可以將xx新增近stage裡面

repository 提交的歷史,即使用git commit提交後的結果

以下簡單敘述一下把檔案存入repository流程:

1、剛開始 working tree 、 index 與 repository(head)裡面的內容都是一致的

2、當git管理的資料夾裡面的內容出現改變後,此時 working tree 的內容就會跟 index 及 repository(head)的不一致,而git知道是哪些檔案(tracked file)被改動過,直接將檔案狀態設定為 modified (unstaged files)。

3、當我們執行 git add 後,會將這些改變的檔案內容加入 index 中 (staged files),所以此時working tree跟index的內容是一致的,但他們與repository(head)內容不一致。

4、接著執行 git commit 後,將git索引中所有改變的檔案內容提交至 repository 中,建立出新的 commit 節點(head)後, working tree 、 index 與與repository(head)區域的內容 又會保持一致。

分支概念

分支合併

再來說一說合併,首先是fast-forward,換句話說,如果順著乙個分支走下去可以到達另乙個分支的話,那麼 git 在合併兩者時,只會簡單地把指標右移,因為這種單線的歷史分支不存在任何需要解決的分歧,所以這種合併過程可以稱為快進(fast forward)。比如:

注意箭頭方向,因為每一次提交都有乙個指向上一次提交的指標,所以箭頭方向向左,更為合理

當在master分支合併dev分支時,因為他們在一條線上,這種單線的歷史分支不存在任何需要解決的分歧,所以只需要master分支指向dev分支即可,所以非常快。

當分支出現分叉時,就有可能出現衝突,而這時git就會要求你去解決衝突,比如像下面的歷史:

因為master分支和dev分支不在一條線上,即v7不是v5的直接祖先,git 不得不進行一些額外處理。就此例而言,git 會用兩個分支的末端(v7 和 v5)以及它們的共同祖先(v3)進行一次簡單的三方合併計算。合併之後會生成乙個和並提交v8:

git rebase可以避免分支分叉 link.

git stash 能夠將所有未提交的修改(工作區和暫存區)儲存至堆疊中,用於後續恢復當前工作目錄。

git stash pop 將當前stash中的內容彈出,並應用到當前分支對應的工作目錄上。 link.

git reset重置分支,三種方式link.

git cherry-pick 可以理解為」挑揀」提交,它會獲取某乙個分支的單筆提交,並作為乙個新的提交引入到你當前分支上。 當我們需要在本地合入其他分支的提交時,如果我們不想對整個分支進行合併,而是只想將某一次提交合入到本地當前分支上,那麼就要使用git cherry-pick了。link.

git合併別的分支單個檔案

假設有如下兩個分支a和b,現在只想將a分支上的countdown.***檔案貼上到b分支(注意:是複製貼上,相當於覆蓋掉原檔案),可以這樣操作:

1、切換到b分支

git checkout b

2、貼上檔案

本次學習只學習了git 的基本概念同時對之前認識模糊的命令進行了練習。對學習內容進行整理。

吃了沒文化的虧

有句話說,扮豬吃老虎。那麼到底是誰在扮豬呢?老虎已經是生物鏈的高階了,那麼到底什麼才能把老虎吃掉?這句話常常會用到人身上,那麼扮豬的人只是純粹無辜或者無意吃掉了老虎?還是真的能扮成 豬 把 老虎 吃掉?如果說都是有意扮的,那怎麼電視劇集和現實生活中里確實有一些無辜的 豬 自己也毫無意識的就把老虎吃掉...

2020 08 21吃了個大虧,當然也有技術問題

我其實有點喪,今天。來了,就被組內人反饋乙個演算法效果的問題。其實這也沒什麼,測測看,到底是 原因吧。我估計肯定會有人跟我一樣,情景。同一款演算法,同一組資料,不一樣的人,用出了不同結果,有結果對的,有結果有問題的。還找向了你。你會打理他麼?我都是好心,熱情的幫測一下看。結果我這邊出了乙個更煩躁的問...

三星Note 7停產,原來是吃了流程的虧

三星note 7發售兩個月即成為全球噩夢,從首炸到傳言停產僅僅47天。所謂 屋漏偏逢連天雨 相比華為 小公尺等品牌對其全球市場的擠壓 侵蝕,galaxy note 7 事件這場連天雨算是把三星淋了個措手不及,致其聲譽掃地 危機重重。表面看來,此事件源於電池自燃,深究起來可以追溯到管理層變動帶來的組織...