首先,簡單介紹一下git。
Git是一個開源的分佈式版本控制系統,可以有效、高速的處理從很小到非常大的項目版本管理。Git 倉庫目錄是 Git 用來保存項目的元數據和對象數據庫的地方。 這是 Git 中最重要的部分,從其它計算機克隆倉庫時,拷貝的就是這裏的數據。工作目錄是對項目的某個版本獨立提取出來的內容。 這些從 Git 倉庫的壓縮數據庫中提取出來的文件,放在磁盤上供你使用或修改。暫存區域是一個文件,保存了下次將提交的文件列表信息,一般在 Git 倉庫目錄中。 有時候也被稱作`‘索引’',不過一般說法還是叫暫存區域。
基本的 Git 工作流程如下:
-
在工作目錄中修改文件。
-
暫存文件,將文件的快照放入暫存區域。
-
提交更新,找到暫存區域的文件,將快照永久性存儲到 Git 倉庫目錄。
如果 Git 目錄中保存着的特定版本文件,就屬於已提交狀態。 如果作了修改並已放入暫存區域,就屬於已暫存狀態。 如果自上次取出後,作了修改但還沒有放到暫存區域,就是已修改狀態。
Git託管的服務器也有很多,國外最流行的是GitHub、Gitlab和Bitbucket,國內的主要是開源中國代碼託管、coding.net和碼雲,在上面都可以創建自己的項目,通過git實現本地倉庫和遠程倉庫的同步。
接下來說一下Git常用的命令(按項目流程介紹)
git init
在本地新建一個文件夾,進入目錄後執行git init,會初始化,並在當前文件夾下創建一個.git文件夾
git clone [url]
從代碼託管平臺上覆制你的項目地址,然後執行git clone [url] 會把你在託管平臺上創建的項目同步至本地
git status
查看當前狀態,有幾個分支等等。
git branch [branchname]
創建分支
git checkout [branchname]
切換分支,同樣可以切換到master上去
git checkout -b [branchname]
創建並切換到該分支
當然,也可以在託管平臺上直接創建分支,然後本地使用git pull 和git checkout [branchname]切換到此分支上,進行代碼的開發
git branch
查看分支
git branch -a
可查看本地分支和遠程分支
git merge [branchname]
合併分支到master上
git add .
提交代碼至緩存區
git commit -m [備註信息]
提交代碼到當前分支
git pull
更新代碼。git pull一般只能在master上用,如果在非master上,更新分支使用 git pull origin [branchname]
git push
提交代碼至遠程倉庫。與git pull一樣,在非master上提交代碼,需要使用 git push origin [branchname]
git log
查看所有提交日誌,可查看版本號,撤銷代碼修改時會用到
git reflog
查看所有的提交日誌,如果當前回退到舊版本用git log無法查看到新版本的日誌,此時使用git reflog
git checkout --filename
在工作區時,撤銷上次代碼修改
git reset HEAD filename
從暫存區回到工作區,執行相應操作撤銷代碼修改(即代碼回滾,代碼回滾的方式有很多,reset爲其中的一種,具體回滾方式可以參考這篇博客https://blog.csdn.net/lovesummerforever/article/details/71526900)
git reset --hard [版本號]
回到指定版本號(注意:此時代碼已經commit到分支了但是還沒有git push到遠程倉庫)
如果代碼已經git到了遠程倉庫,那基本沒救了。當然也可以執行git reset --hard [版本號] 回到指定版本,然後強制更新遠程倉庫,不過這樣做是很危險的,因爲這樣會破壞掉你團隊其他成員提交的代碼
以上所有git命令爲項目中常用到的,除此之外還有很多命令,詳情可見https://blog.csdn.net/tomatozaitian/article/details/73515849