學前準備
-
下載
點擊打開 gir 官網
打開安裝文件,一直下一步就Ok了 -
測試安裝
git --version
git version 2.18.0.windows.1
1.使用
github
免費的代碼管理倉庫,開源
gitlab
企業用,自己的服務器搭建。(代碼倉庫)
命令行
- git init 初始化一個倉庫(本地)
本地打開一個文件夾,輸入命令:
> git init
- git add 添加文件到倉庫裏(本地),add命令沒與任何反饋
git add <文件名稱>
git add . // 添加當前目錄的所有文件到倉庫
> git add index.html
- git commit 暫存到倉庫
> git commit -m "描述信息"
1) 這時候如果我們對文件進行了修改,需要做如下操作
> git add .
> git commit -m "第一次修改"
2)vs code 查看修改的文件內容
- git branch 創建分支
> git branch <分支名稱> // 創建分支
> git branch master // 創建一個主分支
> git branch // 查看分支
> git branch <分支名稱> -D // 刪除某個分支
- git checkout 切換分支
> git checkout <已創建的分支名稱>
> git branch dev // 創建分支dev
> git checkout dev // 切換到分支dev
Switched to branch 'dev' // 已經切換到dev分支了
在哪個分支上創建的分支就基於哪個分支,如圖所示:
我在master分支上建立了兩個分支,又在dev分支上建立了dev01分支,這時,dev01分支中就有dev的數據(基於dev);
* 本分支的數據基於創建自己的上級分支,但是在本分支修改數據不會影響到上級分支(獨立個體,互不影響)
* 如果當前分支的代碼沒有保存的話是不能切換分支的
- git merge 合併分支
> git merge <合併的分支名稱>
如:我想將 dev01 分支的內容合併到 master 分支,就需要在 master 分支,執行如下代碼:
> git merge dev01
- git config 配置用戶信息
> git config --global user.name <用戶名>
> git config --global user.email <郵箱>
// --global 可加可不加,加了的話在這個電腦上的項目配置一次以後就不用配置了,其他的項目就不用配置了
// 不加的話本次配置只對當前的項目有效,其他的項目還要配置一次
> git config --list // 獲取配置信息
- git remote 配置遠程倉庫的信息
> git remote add <倉庫別名> <倉庫的地址>
> git remote // 查詢遠程倉庫名稱 <倉庫別名>
> git remote remove <倉庫別名> // 刪除掉本地中遠程倉庫的配置信息
在 github 中創建 項目/倉庫
- git push 把項目上傳到遠程倉庫
> git push <倉庫別名> <分支名稱> // 默認不加分支的時候是 master 分支
> git push -u <倉庫別名> <分支名稱> // -u 參數是設置默認上傳分支
-
git clone 克隆項目
clone 是在本地完全沒有項目的情況下clone
新建一個文件夾(沒有git倉庫的),clone完之後會在這個文件裏自動創建上倉庫,使用clone就不需要init初始化了
> git clone <倉庫地址> <分支名稱> // 默認不加分支的時候是master分支
> git clone https://github.com/android5203/mi.git master
clone 下來的項目第一是不用 init初始化了
第二是不用配置遠程倉庫的信息了,本地倉庫和遠程倉庫直接連接到一起了;
至於上邊的第8條git remote 是遠端沒有倉庫的時候用的;
clone 完代碼,修改之後想提交,步驟如下:
> git add .
> git commit -m "描述"
> git push
以上是遠程倉庫有內容時候的操作步驟,下邊總結一下:
1. 本地新建文件夾
2. git clone <倉庫地址> <分支名稱>
3. 修改了文件
4. git add .
5. git commit -m "描述"
6. git push
那如果遠程倉庫是空的的時候該怎麼操作呢?
1. 新建文件夾
2. git init
3. 編輯裏邊的項目,編輯完成
4. git add .
5. git commit -m "描述信息"
6. git remote add gitTest https://github.com/android5203/test.git
// 添加遠程倉庫 gitTest (別名)
// 倉庫地址是在 github 上新建了倉庫的那個地址
// git remote 查一下當前倉庫的別名 -> gitTest
7. git push gitTest master
// git push <倉庫別名> <分支>
// 這樣的話每次提交到遠程就不能只用 git push ,而是要 git push <別名> <分支> 了;
// 爲了避免這種情況:使用 -u 參數
// git push -u gitTest master
8. 這樣就將代碼提交到遠程倉庫了
9. 再次修改文件
10. git add .
11. git commit -m "描述"
12. 如果之前用 -u 參數了,就直接 git push 就行,沒用的話,還得: git push gitTest master
- git fetch 下載
場景如下:
一個項目,兩個工程師開發,各自一個分支,分別是 a1 , a2
這時,新建了一個分支,叫做 dev 作爲開發分支,這時,a1 / a2 已經開發完成了,需要合併到 dev 分支中,在 dev中應如何操作呢?clone?顯然不行,clone是在本地完全爲空的情況下用的;
解決如下:
> git fetch <倉庫別名> <遠程分支名稱>:<本地分支名稱>
> git fetch gitTest a1:b1
接着上邊的場景
現在本地分支 master / dev
如上命令執行完之後,本地分支 master / dev / b1
其中 b1 分支的內容是遠程的 a1分支的內容,不過在本地名稱變了一下而已(接下來就是合併操作了)
- git pull 拉取同步遠程倉庫代碼
用來更新當前分支的代碼
> git pull <倉庫別名> <分支名稱> // 如果在有多個倉庫的情況下需要倉庫別名,有多個分支的情況下需要分支名稱
git fetch 是在本地完全沒有某個遠程分支的時候使用,比如說 a1 分支;
本地只有 master / dev 分支,沒有遠程 a1 分支的內容,這時候要用 git fetch
第二次,本地現在有了 a1 分支,再下載 a1 遠端代碼就用更新操作(pull)就好了;