目錄
- 一、概述
- 1.1、Git作業一覽圖
- 1.2、Git滴歷史背景
- 1.3、Git可以干嘛呢
- 1.4、Git與SVN對比
- 1.5、常見代碼托管服務
- 二、環境搭建
- 2.1、windows環境:
- 2.2、Mac環境
- 2.3、查看Git版本資訊
- 三、Git常用命令
- 3.1、環境配置
- 3.1.1、默認五大行
- 3.1.2、可選配置
- 3.1.3、檢查配置
- 3.2、獲取Git倉庫
- 3.2.1、本地初始化
- 3.2.2、遠程克隆
- 3.3、作業區/暫存區/版本庫
- 3.3.1、流程圖一覽
- 3.3.2、名詞解釋
- 3.4、作業目錄中檔案的兩種狀態
- 3.4.1、作業目錄中檔案的兩種狀態
- 3.4.2、查看命令
- 3.5、本地倉庫操作
- 3.5.1、將檔案加入或取出暫存區
- 3.5.2、將暫存區檔案修改提交
- 3.5.3、洗掉檔案
- 3.5.4、將檔案添加到忽略串列
- 3.5.5、查看日志記錄
- 3.6、遠程倉庫操作
- 3.6.1、一覽圖
- 3.6.2、查看遠程倉庫
- 3.6.3、添加遠程倉庫
- 3.6.4、克隆遠程倉庫
- 3.6.5、移除遠程倉庫
- 3.6.6、抓取/拉取遠程倉庫
- 3.6.7、推送遠程倉庫
- 3.7、分支
- 3.7.1、查看分支
- 3.7.2、創建分支
- 3.7.3、切換分支
- 3.7.4、推送到遠程倉庫分支
- 3.7.5、合并分支
- 3.7.6、洗掉分支
- 3.8、標簽
- 3.8.1、列出已有的標簽
- 3.8.2、創建新標簽
- 3.8.3、將標簽推送到遠程倉庫
- 3.8.4、檢出標簽
- 3.8.5、洗掉標簽
- 四、Git 的rebase與merge
- 4.1、相同點
- 4.2、不同點
- 4.2.1、merge與rebase圖解
- 4.2.2、merge
- 4.2.3、rebase
- 4.3、小結
- 五、GitHub 實戰
- 5.1、進入GitHub,創建倉庫
- 5.2、設定GitHub倉庫資訊
- 5.3、本地獲取遠程倉庫
- 5.3.1、配置免密登錄
- 5.3.2、通過SSH方式獲取
- 5.3.2、克隆遠程倉庫
- 5.3.3、將本地內容提交到本地倉庫
- 5.3.4、將本地倉庫內容提交遠程倉庫
一、概述
1.1、Git作業一覽圖

1.2、Git滴歷史背景
- linux開發需要許多人協同,早前人們使用的是別人授權的版本控制系統BitKeeper,后來免費使用許可停止授權,Linux開發者Linus Torvalds自己開發了git,
1.3、Git可以干嘛呢
- 用于完整記錄專案代碼變化:時間、人物、地點、‘經過’、‘結果’
- 用于備份每一次的變化的代碼版本:便于查詢歷史記錄、復原變更、差異比較
- 多人協作:分支合并、克隆提交
1.4、Git與SVN對比
- SVN:C/S結構【集中式】【從中央服務器拿代碼->自己開發后上傳】
- 中央服務器崩潰就全崩潰
- 容錯性差
- Git:【分布式】版本控制
- 本地倉庫:commit提交到本地倉庫
- 遠程倉庫:push本地到遠程服務器倉庫
pull拉取到本地倉庫;Clone克隆將遠程倉庫直接復制到本地
1.5、常見代碼托管服務
- GitHub、碼云、GitLab
二、環境搭建
2.1、windows環境:
目前可以使用gitbash工具,點擊這,進gitbash官網下載對應版本(如:64位)

2.2、Mac環境
- 直接安裝xcode工具就自帶gitbash;
- 通過brew安裝;
/**
* Homebrew安裝方式:默認在該路徑/usr/local/Cellar/git/
* 無Homebrew時,先安裝Homebrew,有則跳過
*/
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
// 有brew時,通過命令安裝git
brew install git
2.3、查看Git版本資訊
// 命令中查看版本資訊:
git --version
三、Git常用命令
3.1、環境配置
3.1.1、默認五大行
以下代碼中:weiranyi需替換自己的用戶名,@qq.com需替換為自己的郵箱
git config --global user.name weiranyi
git config --global user.email @qq.com
git config --global push.default simple
git config --global core.quotepath false
git config --global core.autocrlf input
3.1.2、可選配置
// 1.使用git commit的時候會彈出vs code編輯器,前提是安裝了該軟體并配置了環境
git config --global core.editor “code --wait”
// 2.設定和取消git代理:
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy https://127.0.0.1:7890
git config --global --unset http.proxy
git config --global --unset https.proxy
3.1.3、檢查配置
// 配置完就可以使用該命令查詢
git config --global --list
3.2、獲取Git倉庫
3.2.1、本地初始化
git init
3.2.2、遠程克隆
git clone https://github.com/weiranyi/Project-Crawler-Elasticsearch.git
3.3、作業區/暫存區/版本庫
3.3.1、流程圖一覽

3.3.2、名詞解釋
- 版本庫:.git隱藏目錄里面的所有檔案都可以被Git管理起來,每個檔案的修改、洗掉等操作Git都能跟蹤到,有配置、日志、檔案版本等資訊
- 暫存區(stage):.git隱藏目錄里index檔案(二進制檔案)就是暫存區,暫時存放修改的檔案
- 作業目錄:包含.git目錄,主要存放開發代碼
3.4、作業目錄中檔案的兩種狀態
3.4.1、作業目錄中檔案的兩種狀態
- a.未追蹤狀態 /Untracked files
- b.追蹤狀態 /tracked
- i.未修改/unmodified
- j.已修改/Modified
- k.已暫存/Staged
3.4.2、查看命令
// 查看檔案狀態
git status
// 簡潔版
git status -s
3.5、本地倉庫操作
3.5.1、將檔案加入或取出暫存區
git add index.html //【加入】對單個檔案,如:index.html增加標記
git reset index.html //【取出】這個是取消的方式
git status //查看標記狀態
git add . // 對所有檔案添加標記
3.5.2、將暫存區檔案修改提交
// 將已經被標記的檔案提交到倉庫,版本1是描述內容
git commit -m "版本1"
/** 不加-m時
* 輸入命令并回車后,進入一個編輯界面
* 編輯:輸入i(英文字母),可進入插入模式
* 保存并推出:按esc,再輸入wq保存并退出
*/
git commit
3.5.3、洗掉檔案
// 作業區的檔案洗掉操作會默認放入暫存區,注:手動右鍵洗掉需要add一下
git rm 洗掉檔案名
// 只需提交一下
git commit -m "從倉庫洗掉"
3.5.4、將檔案添加到忽略串列
// 1、第一步:通過.gitignore 設定不需要標記的檔案
vi .gitignore // 輸入英文狀態i鍵進行編輯
// 3、第二步:在.gitignore中添加忽略滴內容
target/
.idea/
// 按esc,輸入:wq保存退出
3.5.5、查看日志記錄
git log
3.6、遠程倉庫操作
3.6.1、一覽圖

3.6.2、查看遠程倉庫
// 會列出遠程服務器的簡寫,克隆會顯示origin
git remote
// 顯示出遠程的地址
git remote -v
// 更加詳細的資訊
git remote show origin
3.6.3、添加遠程倉庫
// 添加一個遠程倉庫地址
git remote add<shortname><url>
git remote add origin https://***/***/***.git
3.6.4、克隆遠程倉庫
// 不僅僅是檔案,歷史和日志資訊會一起下載下來
git clone [url]
3.6.5、移除遠程倉庫
#移除無效的遠程倉庫【移除本地的遠程倉庫記錄,不會移除遠程】
git remote rm myhomework
3.6.6、抓取/拉取遠程倉庫
// (1)、git fetch
// git fetch:不會自動合并資料【抓取到本地,但沒有合并到作業區,在隱藏庫的object中以二進制存放】
git fetch
// 手動合并:以下命令執行后檔案就已經到作業區啦
git merge origin/master
// (2)、git pull
//git pull:抓取遠程最新資料同時自動進行合并(merge)
// 本地 遠程
git pull origin master
3.6.7、推送遠程倉庫
git push origin master
3.7、分支
3.7.1、查看分支
// 列出本地分支
git branch
// 列出所有倉庫分支
git branch -r
// 列出遠程和本地滴
git branch -a
3.7.2、創建分支
// 創建本地分支
git branch bit1
3.7.3、切換分支
// 切換分支
git checkout bit1
3.7.4、推送到遠程倉庫分支
git push origin bit1
3.7.5、合并分支
// 將分支bit1的內容合并到main分支,切換分支為main
git checkout main
// 在master下進行以下操作
git merge bit1
3.7.6、洗掉分支
// 洗掉本地分支,不會洗掉遠程分支
git branch -d bit2
// 洗掉遠程分支
git push origin -d b2
3.8、標簽
3.8.1、列出已有的標簽
// 列出已經有滴標簽tag
git tag
// 查看tag資訊
git show [tag]
3.8.2、創建新標簽
// git tag[tagName]
git tag v0.1
// 查看
git show v0.1
3.8.3、將標簽推送到遠程倉庫
git push origin tag v0.1
3.8.4、檢出標簽
// 新建一個分支,指向某個tag
git checkout -b [branch][tag]
git checkout -b bit2 v1.0
// 打標簽tag2.0
git tag v2.0
// 推送遠程
git push origin v2.0
3.8.5、洗掉標簽
// 洗掉本地標簽tag
git tag -d[tag]
git tag -d v0.1
// 洗掉遠程tag
git push origin :refs/tags/[tag]
git push origin :refs/tags/v0.1
四、Git 的rebase與merge
4.1、相同點
都可以對代碼進行合并操作
4.2、不同點
4.2.1、merge與rebase圖解
下圖:在某分支執行git merge/rebase master

4.2.2、merge
- 將分支開始的所有commit合并在一起,并將這個合并的commit和main進行比較
- 不修改原有commit內容,所有沖突用一個新commit來描述
4.2.3、rebase
- 線性的歷史結構
- 每一個Commit都要處理自己的導致的沖突,所以每一個Commit內容其實都已經改變了
4.3、小結
- 不要在共享分支上使用rebase
- 本地和遠端對應同一條分支,優先使用rebase,而不是merge
五、GitHub 實戰
5.1、進入GitHub,創建倉庫

5.2、設定GitHub倉庫資訊
按需對倉庫進行設定,完成后點擊創建

5.3、本地獲取遠程倉庫
5.3.1、配置免密登錄
- a、本地生成ssh 密鑰
// windows在GitBash操作,MAC進入終端就行
// 進入home目錄
cd ~
// weiranyi@github.com換你的郵箱(后面建議一路回車,不要輸密碼)
ssh-keygen -t rsa -b 4096 -C "weiranyi@github.com"
// 進入.ssh目錄
cd .ssh
// 查看檔案ls,.pub結尾代表公鑰匙(id_rsa,id_rsa.pub)
ls
id_rsa id_rsa.pub known_hosts
// 輸出公鑰內容,將命令列反饋一大串內容復制
cat id_rsa.pub
- b、GitHub配置ssh 密鑰
- i、登錄 GitHub,點擊用戶頭像→
Settings→SSHandGPG keys→NEW SSH keys - 將a步驟中cat命令輸出的內容復制到key框框,title隨意

至此:a、b步驟操作完成后,ssh也就配置好啦
- i、登錄 GitHub,點擊用戶頭像→
5.3.2、通過SSH方式獲取
-
含Quick setup的初始倉庫

-
常見通過SSH獲取自己的倉庫,code按鈕,復制SSH連接

-
常見通過https獲取自己和他人的倉庫:code按鈕,復制https鏈接

5.3.2、克隆遠程倉庫
// git clone https鏈接(SSH獲取自己的倉庫時,推薦!!!)
git clone git@github.com:weiranyi/test.git
// 克隆他人倉庫使用git clone https鏈接
git clone https://github.com/weiranyi/test.git

5.3.3、將本地內容提交到本地倉庫
cd test
echo "# test" >> README.md
git add README.md
git commit -m "添加README檔案"
5.3.4、將本地倉庫內容提交遠程倉庫
git branch -M main
git push -u origin main


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294586.html
標籤:其他
