git是什麼
git是一個分佈式版本控制工具,github是代碼託管平臺。
git有什麼用
-
保存文件的所有修改記錄
-
使用版本號進行區分
-
隨時可瀏覽歷史版本記錄
-
可還原到歷史指定版本
-
對比不同版本的文件差異
爲什麼要用git?
-
多人協作開發一個大型項目
-
每個人都在代碼庫下載代碼,然後進行修改,把大家不同版本的代碼合併上傳到平臺
-
公司都會有自己的代碼託管平臺,github是開源的,免費學習,參與知名項目
-
爲協作開發而生的,公司都在使用,不得不學
要學什麼?怎麼用
基本概念
倉庫
倉庫分爲遠端倉庫和本地倉庫
遠端倉庫
- git init --bare
本地倉庫
- git clone ...
協議
-
http
-
ssh
使用ssh公鑰登錄GIT服務器
生成公鑰和私鑰(ssh-keygen -t rsa
)
安裝openssh server(可省略)
複製公鑰內容到遠端服務器 .ssh/authorize_keys
git clone
- git
設置用戶名和密碼
局部
使用git config user.name mark
設置用戶名
設置郵箱使用 git config user.email [email protected]
git config --local -l
全局
使用 git config --global user.name mark
設置用戶名
使用git config --global user.email [email protected]
設置郵箱
git config -l
本地工作區
就是我們使用git init或 git clone 所在的路徑
暫存區
使用 git add <源碼文件>
添加到暫存區
本地倉庫
使用git commit .
添加到本地倉庫
遠程倉庫
使用git push orgin master
推送到遠端服務器
版本號
通過 git log
查看我們的提交記錄·裏面有我們的版本號
head
當前檢出記錄的符號引用
基本操作
-
暫存(git add)
-
提交(git commit)
-
推送(git push)
-
拉取(git fetch)
-
拉取合併(git pull)
git fetch
git merge
-
查看狀態(git status)
-
查看歷史(git log)
git reflog
逆向操作
-
index -> workspace git (git restore -S 源碼文件)
-
本地倉庫 -> index (git reset --soft)
-
本地倉庫 -> workspace(git reset --mixed)
-
本地倉庫 ->null(git reset --hard)
-
workspace ->null(git checout、git checkout --file、git checkout -f)
本地倉庫整理操作
-
整理上一次提交(git commit --amend)
-
整理多次提交(git rebase -i h1 h2、左開右閉)
-
沒有人基於你的分支開發(從變基那個節點開始往後的所有節點的commit id都會變化、會引起其他人衝突)
分支操作
- 查看分支(git branch)
- 創建分支(git branch develop 創建、git chect out -b develop 創建並切換)
- 合併分支(git rebase(不建議使用))
- 從兩個分支的共同祖先開始提取當前分支上的修改
- 提取的提交應用到目標分支的最新提交的後面
- 將當前分支只想目標分支的最新提交
- 可能引發其他人基底發生改變
- 刪除分支
- git branch -d develop
- 刪除遠端 git push origin -d develop
*分支作用:獨立變化互不依賴
解決衝突
- 衝突產生原因 不同分支修改了同一文件
- 解決原則
- 不要影響其他人提交的功能
- 協商解決
- 解決
- git merge
- git add .
- git commit . -i -m ".."
- git rebase
- git add . 標記解決
- git rebase --continue
- git merge
- 建議
提交前先pull代碼
推薦一個零聲學院免費教程,個人覺得老師講得不錯,
分享給大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,
TCP/IP,協程,DPDK等技術內容,點擊立即學習:
服務器
音視頻
dpdk
Linux內核