git
git筆記
git是一個免費、開源的分布式版本控制工具,可快速、高效的處理從小到大各種項目。且簡單易學、有廉價的本地庫、友善的暫存區和多分支等特性。
git概述
git官網:https://git-scm.com/
--everything-is-local
--fast-version-control
--distributed-even-if-your-workflow-isnt
版本控制系統:記錄檔案内容變化,以便查閱或修改特定版本的系統
git工作機制
遠端庫 曆史版本 -> 本地庫 -> git push 遠端庫
臨時存儲 -> 暫存區 -> git commit 本地庫
寫代碼 -> 工作區 -> git add 暫存區
git init 初始化本地庫
代碼托管中心
基于網絡服務的遠端代碼倉庫,即:遠端庫
- 區域網路:GitLab
- 網際網路:GitHub(外網)、Gitee(内網)
git的本地使用
設定使用者簽名
簽名作用:區分不同操作者,檢視本次送出是誰做的。
指令 | 作用 |
git config --global user.name 使用者名 | 設定使用者簽名 |
git config --global user.email 郵箱位址 | 設定使用者郵箱 |
git config --list | 檢視配置清單 |
git基本操作
指令 | 作用 |
git init | 初始化本地庫 |
git status | 檢視本地庫狀态 |
git add 檔案名 | 添加暫存區 |
git rm --cached 檔案名 | 從暫存區删除檔案 |
git commit -m "日志資訊" 檔案名 | 送出本地庫 |
git reflog | 檢視曆史記錄 |
git log | 檢視詳細曆史記錄 |
git reset --hard 版本号 | 版本穿梭 |
- 初始化本地庫 git init
- 檢視本地庫狀态 git status
- 添加暫存區 git add 檔案名
- 送出本地庫 git commit -m "日志資訊" 檔案名
- 檢視曆史記錄 git reflog-檢視已經送出的曆史版本
- 版本穿梭-回到以前的版本 gitreset --hard 版本号
git分支基本操作
在版本控制中,同時推進多個任務,為每個任務建立獨立的分支,從主線分支分離出去,每個分支不會影響主線分支。(分支的底層為指針的引用)
指令 | 作用 |
git branch 分支名 | 建立分支 |
git branch -v | 檢視分支 |
git checkout 分支名 | 切換分支 |
git merge 分支名 | 合并指定分支 |
- 建立分支 git branch 分支名
- 檢視分支 git branch -v
- 切換分支 git checkout 分支名
- 合并分支-将指定分支合并到目前分支(被合并的分支并不會消失) git merge 分支名
代碼沖突和沖突合并
代碼沖突,兩個分支在同一個檔案同一個位置有兩套完全不同的修改,git無法決定,必須人為決定合并後内容。
- 合并方法:
- 手動打開檔案認為修改
- 将修改後的檔案添加暫存區
- 送出本地庫(此時送出不能帶檔案名)(被合并的分支不會被修改)
其他操作
git 删除遠端庫檔案
- git rm -r --cached [file] #執行删除操作
- git commit -m "資訊" #将删除操作送出
- git push 位址 分支 #推送遠端庫
團隊協作
團隊内協作&跨團隊協作
指令 | 作用 | 備注 |
git remote -v | 檢視目前所有遠端位址别名 | |
git remote add 别名 遠端位址 | 建立遠端位址别名 | |
git push 别名或位址 分支名 | 推送本地分支到遠端庫 | |
git pull 别名或位址 分支名 | 拉去遠端端檔案到本地庫 | |
git clone 位址 | 克隆遠端庫到本地 | 克隆後自動建立别名為origin |
GitHub團隊協作
GitHub:https://github.com/
- 建立遠端庫,複制遠端庫連結
- 建立遠端庫位址别名 git remote add 别名 遠端位址
- 推送本地庫到遠端庫 git push 别名或位址 分支名
- 拉去遠端庫到本地庫 git pull 别名或位址 分支名
- 克隆遠端庫到本地庫 git clone 遠端庫位址
跨團隊協作
- 去代碼倉庫fork一份到自己遠端庫
- clone到本地庫,進行修改
- push到自己的遠端庫,向對方發起pull request請求
- 對方稽核後merge合并到自己的庫
SSH免密登入
- 建立公私鑰
cd ~/.ssh
ssh-keygen -t rsa -C "github登入郵箱"
- 輸入你的秘鑰名
- 輸入你的私鑰密碼 随便寫
- 輸入指令的目錄下就會多兩個檔案ssh.txt和ssh.txt.pub,其中ssh.txt.pub就是你的公鑰
- 添加公鑰到github
同時推送到gitee和github
- 克隆gitee或github的倉庫到本地;
- 更改根目錄.git/config檔案中的[remote "origin"]下的url屬性,分别添加github和gitee的遠端庫位址;
- 使用git push指令推送即可。
- 同時推送需保證兩個遠端庫版本一緻。