一、爲什麼要用git
1.傳統的文檔管理
- 命名雜亂
2.源代碼管理的好處
- 方便多人協同開發
- 方便版本控制
3.git的誕生
- 作者 linux 之父:linus
- git開發目的:爲了輔助linux的開發
- 破解了開發工具,開發工具不允許使用
- linus 花了兩個星期使用C開發了git
二、git的結構
三、Git的安裝
1.安裝 git
- ubuntu 下安裝
apt install git
- windows 下安裝
下載exe
2.查看是否安裝完成
CMD,git
3.創建本地倉庫
- 創建文件夾用於存放項目文件
- 創建倉庫
git init
初始化倉庫,創建一個隱藏的 .git 文件夾 - 配置個人信息
# 配置全局信息
git config --global user.name 'yejue'
git config --global user.email '[email protected]'
# 配置文件保存在 ~/.git/config 目錄下
4.添加文件
添加 readme.md 文件,或者 readme.txt
將代碼提交到代碼倉庫
- 提交到暫存區
git add readme.md
- 提交到倉庫
git comit -m '一些說明' (備註是必須的)
5.歷史版本
# 查看操作記錄,不包含已刪除
git log
# 可以查看所有分支的所有操作記錄,包含已經刪除的commit記錄
git reflog
6.版本回退
- git reset --hard HEAD^
- HEAD 表示當前最新版本
- HEAD^ 表示當前最新版本的前一個版本
- HEAD^^ 表示當前最新版本的前兩個版本,以此類推
- HEAD~1表示當前最新版本的前一個版本
- HEAD~2表示當前最新版本的前兩個版本,以此類推
- git reset --hard 版本號
當版本非常多時選擇這種辦法,版本號就是每次commit生成的hash值,只需要取前幾位數即可。
7.撤銷修改
運行 git status 命令顯示當前工作區、暫存區、倉庫的狀態。
- 撤銷工作區的代碼
# checkout 命令不可逆轉,慎用!!慎用!!!
git checkout 文件名
- 撤銷暫存區的代碼
# 第一步,將暫存區代碼撤回到工作區
git reset head 文件名
# 第二部,撤銷工作區代碼
git checkout 文件名
8.對比代碼
- 對比本地倉庫與工作區
git diff head 文件名
- 對比本地倉庫各個版本代碼
git diff head head^ 文件名
9.文件刪除
- 刪除沒有添加進版本庫的工作區的文件
右鍵刪除 - 刪除已添加進暫存區的但沒有提交的文件
# 撤回到工作區
git reset head 文件名
# 右鍵刪除
rm -rf ******
- 刪除已提交到倉庫的
# 直接刪了
rm -rf *****
# 暫存區
git add .
# 提交
git commit -m '刪了一點東西'
四、遠程倉庫
兩大雲倉庫,github 和 碼雲
在其中一個平臺創建一個賬戶,新建一個倉庫。建好倉庫後有兩個地址,一個是https,一個是ssh,,https的連接建立需要使用賬戶密碼,ssh的使用則需要進行公鑰設置。
1. 添加遠程倉庫
- 1克隆
從已存在的遠程倉庫中將項目完完整整克隆下來,地址由選擇的倉庫存儲服務商提供。如圖
# 進入要存放項目的目錄
cd ~
# 克隆
git clone https://github.com/yejue/classonline.git
- 2本地初始化倉庫再推送到遠程(https連接)
# 初始化倉庫
git init
# 與遠程倉庫建立連接
git remote add origin https://github.com/yejue/classonline.git
# 推送
git push origin master # master分支
- 2 ssh 鏈接公鑰連接,首先生成公鑰,生成後會在當前用戶的 ~/.ssh 目錄下
ssh-keygen -t rsa -C '[email protected]'
# 進入home目錄查看
cd ~/.ssh
ls
- 2.1使用deploy keys鏈接的公鑰部署
- 2.2使用 ssh keys 的公鑰部署
2.推送到遠程倉庫
git push orgin master
3.從遠程倉庫拉取到本地
git pull
五、分支管理
1. 創建分支
# 創建一個開發分支develop
git branch develope
# 切換到develope分支
git checkout develope
# 創建並切換
git checkout -b develope
2.合併分支
# 切換到master分支
git checkout master
# 合併分支
git merge develope
3.刪除分支
git branch -d develope