概述
由於gitlab的免費私有倉庫的優勢,所以在公司使用gitlab會多一些,對於gitlab來說,註冊需要翻牆,而登錄不需要。
下面還是主要介紹下git的原理和常用的一些操作。
Git 工作流程
在gitlab上一般每個人或每個項目或者每個bug都會有自己獨立的分支。分支不影響主分支master。
一般工作流程如下:
- 克隆 Git 資源作為工作目錄。
- 在克隆的資源上添加或修改文件。
- 如果其他人修改了,你可以更新資源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成後,如果發現錯誤,可以撤回提交並再次修改並提交。
Git 工作區、暫存區和版本庫
這裡理解git的重心。因為我們使用git,就是在本地電腦上,本地電腦會有自己的倉庫,可以在每個項目文件夾的根目錄均設置一個倉庫。本地倉庫和本地分支和遠程分支是分離的。可以通過pull拉取遠程分支到本地,或push,推送本地分支到遠程分支。
- 工作區:就是你在電腦里能看到的目錄。
- 暫存區:英文叫stage, 或index。一般存放在 「.git目錄下」 下的index文件(.git/index)中,所以我們把暫存區有時也叫作索引(index)。
- 版本庫:工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。
下面這個圖展示了工作區、版本庫中的暫存區和版本庫之間的關係:
圖中左側為工作區,右側為版本庫。在版本庫中標記為 「index」 的區域是暫存區(stage, index),標記為 「master」 的是 master 分支所代表的目錄樹。
圖中我們可以看出此時 「HEAD」 實際是指向 master 分支的一個」游標」。所以圖示的命令中出現 HEAD 的地方可以用 master 來替換。
圖中的 objects 標識的區域為 Git 的對象庫,實際位於 「.git/objects」 目錄下,裡面包含了創建的各種對象及內容。
當對工作區修改(或新增)的文件執行 「git add」 命令時,暫存區的目錄樹被更新,同時工作區修改(或新增)的文件內容被寫入到對象庫中的一個新的對象中,而該對象的ID被記錄在暫存區的文件索引中。
當執行提交操作(git commit)時,暫存區的目錄樹寫到版本庫(對象庫)中,master 分支會做相應的更新。即 master 指向的目錄樹就是提交時暫存區的目錄樹。
當執行 「git reset HEAD」 命令時,暫存區的目錄樹會被重寫,被 master 分支指向的目錄樹所替換,但是工作區不受影響。
當執行 「git rm --cached
當執行 「git checkout .」 或者 「git checkout --
當執行 「git checkout HEAD .」 或者 「git checkout HEAD
git使用前配置
配置帳號密碼和編輯器。首先要讓git知道我們登錄gitlab的帳號和郵箱。git每次聯繫gitlab或github都會使用我們配置的帳號和郵箱
git config --global user.name "hwb"
git config --global user.email [email protected]
至於其他的配置,使用默認即可。
- 注意:每個目錄下是一個倉庫,倉庫信息通過目錄下的.git文件保存
將本地項目文件夾,上傳到遠程倉庫指定分支的某個文件夾
要修改遠程倉庫的分支內容,需要我們先把遠程倉庫的某個分支pull到本地,在本地添加修改的內容,在push到遠程。所謂的修改包括,添加文件,刪除文件,清空文件等等。
比如我想將我的文件夾上傳到遠程倉庫的hwb分支下的ios/server文件夾下面。
1、選擇一個目錄用來存儲遠程倉庫分支的內容。
git clone -b hwb [email protected]:hwb/cloud-ai.git
2、將遠程倉庫的分支hwb下載到當前目錄。默認master分支
cd 項目目錄
3、查看分支
git branch 查看分支,顯示的就是hwb分支,在文件夾中對應位置添加你的項目文件或文件夾,回到命令行。
git add . 添加當前目錄下的所有文件到緩存區
git status 查看緩存區和版本庫的所有變化
git commit -m "describe" //提交監督的內容的變化到本地版本庫
4、創建一個遠程倉庫的連結
git remote add cloudai [email protected]:hwb/cloud-ai.git 使用cloudai這個名字代表遠程倉庫
git push cloudai hwb 將當前分支上傳到遠程倉庫的分支。
git remote -v 查看遠程倉庫的連結
git remote rm cloudai 刪除遠程倉庫連結
本地倉庫管理
如果想在自己的電腦上建一個倉庫,自己管理自己的代碼,也備以後使用。可以使用下面的命令:
mkdir projectdir //創建一個目錄
cd projectdir //進入目錄
git init //創建一個倉庫,自動創建master分支
git add . //添加當前文件夾下的所有文件添加到緩存區,手動添加的文件,必有add以後才能被添加到緩存區
git status //查看緩存區和版本庫之間的文件差別
git commit -m "describe" //將緩存區的內容更新到版本庫分支
git branch //查看當前分支
git branch -a //查看所有分支。前面帶*號的代表你當前工作目錄所處的分支
git branch branch-name //當前倉庫添加分支,創建branch-name分支。需要你向裡面添加文件並提交
git checkout branch-name //切換到branch-name分支,那工作區就會只顯示該分支下的文件夾。
git branch -D branch-name //刪除本地分支 git branch --delete branch-name
覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~