git知識整理

2022-03-04 10:07:17 字數 2227 閱讀 6645

工作中使用git進行**託管,一開始只知道git add commit,之後了解了git-flow外掛程式,覺得超牛逼,一鍵生成feature分支,再後來聽說原生git命令更好用,於是又去學了原生git命令。

看了下git官方文件,記錄下學習的心得。

git分為未跟蹤區跟蹤區暫存區

檔案一般都存放在未跟蹤區,修改後的檔案也存放在未跟蹤區。

我們熟知的git add命令會把修改提交到跟蹤區。值得一提的是,我們一般使用git add .來提交所有改動,也可以使用git add path/to/file來提交某個檔案的改動,還可以用正則來提交某個資料夾裡面的所有檔案的改動。

接下來是git commit命令,它會把跟蹤區的檔案放進暫存區裡面。值得一提的是,可以利用git commit -amend來合併這次和上次的提交。

最後是git push origin branch命令,它會把暫存區的檔案上傳到遠端倉庫,並且把本地的這些檔案重新放進未跟蹤區。

有幾個檢視指令是經常用到的。

git status。用來檢視當前git分支的狀態。這個經常用到。

git diff --cached。用來檢視暫存區的檔案和遠端伺服器的檔案有什麼不同。

git log。用來檢視提交歷史。

需要注意的是,輸入上面某些命令後不能輸入命令列了,這時需要點選q來重新回到命令列。

git在分支管理上面非常智慧型和高效。它並沒有把所有分支複製在本地,而是使用指標來進行分支切換。

比如說,我們在master主分支上建立乙個develop分支,那麼git不會傻傻的重新複製乙份master分支的內容,而是建立乙個叫develop的指標指向master指標指向的分支,然後把當前專案的指標head指標指向develop。所以新建分支操作只是新建指標並調整指標的指向而已。

再比如說,我們再本地對master進行開發,提交了開發內容,並且push到了遠端伺服器。這個時候也沒有發生複雜耗時的檔案複製過程,僅僅只是把master指標指向了當前修改的分支而已。所以,修改和提交操作也只是調整指標的指向而已。

這就是git很快的原因。

通過上面的例子我們可以看到:

git checkout -b branch命令能超級迅速的建立並切換新分支。並且,git checkout branch命令能超級迅速的切換新分支,同時切換本地內容。

git branch -a 能夠檢視本地和遠端的所有分支。並且,git branch能夠檢視本地的所有分支。

業界有一套規範的git開發工作流規範。

master分支。穩定分支,所有經過測試後的分支才能merge進master分支。所有的tag也都在master分支上進行。

develop分支。開發分支,所有的開發工作需要先測試ok後合併到develop分支。

feature分支。特性分支,為了開發新特性而從develop分支拉下來的乙個分支。開發完成後合併到develop分支。

release分支。提測分支,專門進行提測的分支,測試完畢後該分支會合併到develop或者master分支。

需要注意的是,對於小專案,有時候沒有release分支,直接在feature分支上面提測。另外,feature分支是乙個資料夾形式的,裡面有很多各種特性的分支,比如feature/href分支等等。

git fetch會拉取遠端伺服器上的資料到本地,但不會覆蓋。

git merge會在文件裡面顯示出所有的衝突,以供解決。解決完成後只需要正常的git add和git commit即可。

git pull會同時執行git fetch 和 git merge,並且覆蓋掉遠端伺服器的資料。

值得注意的是,git merge之後非常方便修改衝突,只需要刪掉不要的**即可。刪掉不要**之後的最終**回覆蓋掉遠端伺服器上的**。

git rebase待續

git 入門知識整理

接觸git也有幾個月了,剛開始只是簡單地把它當做 雲儲存和備份的好方法,後面深入學習了一下,感覺有必要做乙個階段性的總結。git 是由linus torvalds開發的,最初是為了解決linux的 託管問題,而linus正是linux的開發者。集中式版本控制 svn,cvs 分布式版本控制 git,...

GIT 知識點 整理

就ok了,接下來就可以chmod修改許可權了。重新命名分支,如果newbranch名字分支已經存在,則需要使用 m強制重新命名,否則,使用 m進行重新命名 windows中的換行符為 crlf,而在linux下的換行符為lf,所以在執行add 時出現提示,解決辦法 可以這樣做 git config ...

Git基礎知識教程整理(Git分支管理)

git branch develop git checkout develop 或者 git checkout b developgit checkout命令加上 b引數表示建立並切換。git branch或者 git branch a 後面不跟分支名時指列出所有分支,當前分支前面加 git bra...