1.4 安裝git
1.Windows
https://git-scm.com/downloads/win
2.linux
[root@git ~]# yum install git -y
3.macos
https://git-scm.com/downloads/mac
1.5想要讓git對一個目錄進行版本控制需要以下步驟:
進入要管理的文件夾
mkidr uc && cd uc
執行初始化命令
git init
管理目錄下文件的狀態
git status
注::新增的文件和修改過后的文件都是紅色
初始化顏色
git config --global color.ui true
管理指定文件
git add 文件名
git add .
個人信息配置:用戶名、郵箱 【一次即可】
git config --global user.email "oldxu@qq.com" git config --global user.name "oldxu"
生成版本
git commit -m '描述信息'1
查看版本記錄
git log
2.2 第二階段:拓展新功能
2.3 第三階段:“約飯事件”
回滾至之前版本
git log
git reset --hard 版本號
回滾之之后版本
git reflog
git reset --hard 版本
2.4 小總結
1 git init #初始化一個目錄為版本庫
2 git add #將沒有被管理的文件,加入git進行管理
3 git commit #將內容提交到版本庫中
4 git log #查看提交的歷史記錄
5 git reflog #查看所有的歷史提交記錄
6 git reset --hard 版本號 #回退到指定的提交版本記錄
2.5.1 分支
分支可以給使用者提供多個環境的可以,意味著你可以把你的工作從開發主 線上分離開來,以免影響開發主線。
2.5.2 緊急修復bug方案
查看分支
git branch1
創建分支
git branch 分支名稱
切換分支
git checkout 分支名稱
分支合并(可能產生沖突)
git merge 要合并的分支
注意:切換分支再合并
刪除分支
git branch -d 分支名稱
2.5.4 工作流
2.6 第五階段
2.6.1 第一天上班前在家上傳代碼
首先,需要注冊github賬號,并創建遠程倉庫,然后再執行如下命令,將代 碼上傳到github
1. 給遠程倉庫起別名
git remote add origin 遠程倉庫地址
git remote add origin https://gitee.com/yang_huan_huan/uc.git
2. 向遠程推送代碼
git push -u origin 分支
git push -u origin master
3.添加ssh登錄
ssh-keygen -C manager@qq.com
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3IJ2Xr7B7L0edJ/hiSlgTYCcOi9WLo8BcOgDQ1U+XHkPq+XGv89qRbB19/EFqb0pFeLGmWF68iGKvb7png9LCczGJQ7LDUmenS5dmXw0moUEv/MB585HhTOcwE8cYZGzgsFYiQQ7FT8seU5/jRMjWo6qxdfZ2aJ3AWfC1ON9xvS7Y4hw1fs/vhzUEJrQT0J5VxboZ0pOEQXM0BxZG6UOYdDakuiYdjABB7CWg58Py9a84+vwjz3c3NJg/cjTkw+xm3xywGtTX13O1+xqmA0wXd/Ep2S6CMH+EEUckSyBBEV3MXW50IqmUsVQh7BJ2eNQM/LlQHFZJZdCGIiiPuFBT manager@qq.com
2.6.2 初次在公司新電腦下載代碼
1. 克隆遠程倉庫代碼
git clone 遠程倉庫地址 (內部已實現git remote add origin 遠程倉庫地址)
2. 切換分支
git checkout 分支
在公司下載完代碼后,繼續開發
- 切換到dev分支進行開發 git checkout dev
- 把master分支合并到dev [僅一次] git merge master
- 修改代碼
- 提交代碼 git add . git commit -m 'xx' git push origin dev
2.6.3 下班回到家繼續寫代碼
- 切換到dev分支進行開發 git checkout dev 2. 拉代碼 git pull origin dev 3. 繼續開發
- 提交代碼
git add .
git commit -m 'xx'
git push origin dev
2.6.4 到公司繼續開發
- 切換到dev分支進行開發
git checkout dev - 拉最新代碼(不必再clone,只需要通過pull獲取最新代碼即可)
git pull origin dev - 繼續開發
- 提交代碼
git add .
git commit -m 'xx'
git push origin dev
開發完畢,要上線
- 將dev分支合并到master,進行上線
git checkout master
git merge dev
git push origin master - 把dev分支也推送到遠程
git checkout dev
git merge master
git push origin dev
2.6.5 在公司約妹子忘記提交代碼
- 拉代碼
git pull origin dev - 繼續開發
- 提交代碼
git add .
git commit -m 'xx'
注:忘記push了
2.6.6 回家繼續寫代碼
- 拉代碼,發現在公司寫的代碼忘記提交...
git pull origin dev - 繼續開發其他功能
- 把dev分支也推送到遠程
git add .
git commit -m 'xx'
git push origin dev
2.6.7 到公司繼續寫代碼
- 拉代碼,把晚上在家寫的代碼拉到本地(有合并、可能產生沖突) git pull origin dev
- 如果有沖突,手動解決沖突
- 繼續開發其他功能
- 把dev分支也推送到遠程 git add . git commit -m 'xx' git push origin dev
2.6.8 其他
git pull origin dev 等價于 git fetch origin git merge origin/dev
2.7 小總結
添加遠程連接(別名)
git remote add origin 地址 git remote -v
推送代碼
git push origin dev
下載代碼
git clone 地址
拉取代碼
git pull origin dev
等價于
git fetch origin dev
git merge origin/dev
記錄圖形展示
git log --graph --pretty=format:"%h %s"
第三章 其他
3.1 git標簽
1.git標簽作什么用? 當Git倉庫內的數據有改善或者功能更新時,我們經常 會打一個類似于軟件版本號的標簽tag,這樣通過標簽就可以將版本庫中的 某次commit給記錄下來,便于我們后續將特定時期的數據取出來用。簡單 來說:標簽也是版本庫的一個快照。
2.為什么要使用git標簽? Git有commit,為什么還要引入tag?“請把上周一 的那個版本打包發布,commit號是6a5819e...”, “一串亂七八糟的數字不好 找!”如果換一個辦法:
“請把上周一的那個版本打包發布,版本號是v1.2”。按照 tag v1.2查找 commit就行!”所以,tag就是一個讓人容易記住的名字,它跟某個commit 綁在一起。
git clone 地址1
git pull origin dev 等價于 git fetch origin dev git merge origin/dev
1 2 3 4
git log --graph --pretty=format:"%h %s"1
3.git標簽基本使用 1、對當前最新提交的代碼創建標簽,-a標簽名稱,-m標 簽描述
1.將當前最新代碼進行標簽
[root@gitlab demo]# git tag -a "v1.1" -m "描述信息"
2.創建標簽,指定commitID
[root@gitlab demo]# git tag -a v1.0.1 30e2840 -m "Messages
2、如何查看剛才打的標簽。
[root@gitlab demo]# git tag #git log -l
v1.0.0
v1.0.1
3.2 免密碼登錄
URL中體現
原來的地址:https://github.com/oldxu/treenb.git 修改的地址:https://用戶名:密碼 @github.com/oldxu/treenb.git
git remote add origin https://用戶名:密碼 @github.com/oldxu/treenb.git git push origin master
SSH實現
- 生成公鑰和私鑰(默認放在 ~/.ssh目錄下,id_rsa.pub公鑰、 id_rsa私鑰) ssh-keygen
- 拷貝公鑰的內容,并設置到github中。
- 在git本地中配置ssh地址 git remote add origin git@github.com:WuPeiqi/dbhot.git 4. 以后使用 git push origin master
git自動管理憑證
3.3 git忽略文件
讓Git不再管理當前目錄下的某些文件。.gitigonore
通常情況下有如下文件可能需要忽略
1.程序運行時產生的垃圾文件
2.程序運行時產生的緩存文件
3.程序本地開發使用的圖片文件
4.程序連接數據一類的配置文件
*.h
!a.h
files/
*.py[c|a|d]
更多參考:https://github.com/github/gitignore
3.4 git整體總結
1.如何提交代碼至本地版本管理
git init
git add .
git commit -m "Message"
git log
git reflog
2.如何回退代碼
git reset --hard "commit版本號"
3.git commit是什么東西?
類似于虛擬機的快照
4.git分支?
1.創建分支
2.合并分支
3.分支沖突解決
git merge 分支名
git branch
git checkout 切換分支
5.git與碼云|github之間如何關聯
git remote add
git push origin
git pull origin
6.git標簽
git tag -a "標簽名" -m "描述"
git show version
7.git 四大區域 工作區 暫存區 本地版本庫 遠程倉庫
8.git ?ow工作流程