Git 極簡Git 關於Git的簡要回顧

2022-06-10 02:48:09 字數 1589 閱讀 6505

git歷史:它起源於linux核心開發時,為輔助linux開發而設計的版本控制系統,發源於c時代的它,有不少c的影子和影響,其中 stash 命令就算乙個。

git屬於第三代版本控制系統,subversion屬於第二代,而所謂最開始的版本控制,也就是手工複製啦

git是分布式版本控制系統,subversion是中心化版本控制系統,依賴伺服器,主要區別在於有無本地倉庫(repository)

git和subversion第二區別:關於檔案的快照,svn將某個檔案的修改記錄為檔案,即某檔案版本=初始檔案+檔案改動,而git更加激進,對每個版本的檔案都做了個轉殖。

git中所有資料在儲存前都計算校驗和(hash),然後以校驗和來引用。校驗和包括檔案目錄結構,檔案自身校驗和,以此來檢測是否發生改動。

git的幾個狀態,其是啥,與命令的關係:untracked僅在專案資料夾下,仍未加入.git倉庫底下,或被git rm 。

unmodified受git版本控制管理了,git add + git commit 但自上一次加入以來未更改過。

modified受git版本控制管理了,但自上一次加入以來已更改。

staged受git版本控制管理了,但自上一次加入以來已更改,且執行了git add再度生成了份轉殖。  

git的幾個區域,及其與命令的關係

working directory staging area .git repository

|__________< check_out_____________|

|__< reset/add >__|_____commit >_____|

所以checkout 會覆蓋working directory 記得儲存。idea有警告,nice.

git init 進入資料夾後執行,以同步設定(repository等)

git clone以轉殖**到本地

git pull以更新雲端**到本地。

stash與add,stash代表了當前檔案的快取區,stash to stack。與add的區別在於,它不會生成轉殖,實際使用時,你會看到working directory的變更回到了上衣版本同步時的樣子,更改則進入了棧,應用更改的時候pop出來,直白的面對資料結構,使人聯想到c。

git分支,沒什麼好講的,rebase的時候增加分支,值得注意的是,push衝突時,rebase 變基會有個小分支,會改變remote tracking branch。

git merge。合併

chery pick。在另外乙個分支,通常是master,將其他分支,通常是dev,pick過來,merge的操作。

理論上提交的**應該要做到沒問題,不影響其他模組,實際上往往不行,所以2~3個分支總是需要的,dev,test,master。根據進度,測試情況,一點一點chery pick或者merge過來

各ide的git 外掛程式在儲存時都會add。有文章說idea只會stash,是錯的。可以開個cmd,定位到倉庫底下,編儲存邊驗證下。

git push 和pull 的本質在於同步commit物件,這點很重要,也是為什麼可能會把別人的提交 變成 自己的提交的原因。

Git工具極簡筆記(完結)

我的極簡筆記是為了盡可能用最簡單的方式闡述我的學習情況。如有不當請指出。請移步git安裝檢視,說的已經很清楚了。注意 git工具本身的預設路徑是c盤,這個時候需要修改一下路徑不要在c盤裡面放。開啟git bash快捷方式屬性,將目標後的 cd to home刪除,刪掉起始位置上原來的東西,改為要修改...

git最簡使用

git config global user.name your name git config global user.email email example.com 在專案資料夾上一層 git init git add 將當前資料夾下所有內容交給git管理 git commit m 描述 提交 ...

git 最簡使用教程

多人開發專案,git是必需品。中間也走了不少彎路。其實不必完全搞明白怎麼回事,可以邊開發邊學習。因此,乙個最簡流程是非常必要的。git的核心是版本管理和遠端庫,遠端庫有github,國內的碼雲等等.為了能快速的說明怎麼用,本文講先講怎麼本地和遠端同步,再說版本管理 因此,首先需要 這裡寫 片在說公鑰...