一 :Git 簡介
1檬输、Git 是什么
Git 是分布式版本控制系統(tǒng)隙姿,用于開發(fā)時(shí)版本控制
2户敬、Git 與 SVN 的區(qū)別
SVN 是集中式版本控制荣茫,有一個(gè)中央服務(wù)器的概念想帅,代碼放置于中央服務(wù)器。程序員開發(fā)時(shí)需要將代碼拉取到個(gè)人電腦啡莉,開發(fā)結(jié)束推送到中央服務(wù)器港准。
缺點(diǎn)是,必須聯(lián)網(wǎng)操作咧欣,對開發(fā)環(huán)境帶寬要求高浅缸。
Git 是分布式版本控制系統(tǒng),程序員的電腦是一個(gè)完整的版本庫魄咕。多人開發(fā)時(shí)可以互相推送自己的改動(dòng)衩椒,完成整個(gè)系統(tǒng)的研發(fā)毛萌。
優(yōu)點(diǎn)是,無需聯(lián)網(wǎng)阁将、代碼安全性高膏秫、分支管理功能完善
二 : Git 的安裝
1、windom 安裝Git
安裝簡單,請查詢相關(guān)資料
查看git 系統(tǒng)配置
# 查看所有配置
git config -l
# 查看系統(tǒng)配置
git config --system --list
#查看當(dāng)前用戶(global)配置
git config --global --list
手動(dòng)配置如下
$ git config --global user.name "wangch"
$ git config --global user.email "995016129@qq.com"
配置信息就是對應(yīng)你電腦的配置文件
1)满哪、Git\etc\gitconfig :Git 安裝目錄下的 gitconfig --system 系統(tǒng)級
2)、C:\Users\Administrator\ .gitconfig 只適用于當(dāng)前登錄用戶的配置 --global 全局
2活鹰、Linux 安裝Git
# 安裝
yum -y install git
# 查看Git 版本
git --version
三 :Git 基本理論
Git本地有三個(gè)工作區(qū)域:工作目錄(Working Directory)蛔钙、暫存區(qū)(Stage/Index)桑涎、資源庫(Repository或Git Directory)。如果在加上遠(yuǎn)程的git倉庫(Remote Directory)就可以分為四個(gè)工作區(qū)域。文件在這四個(gè)區(qū)域之間的轉(zhuǎn)換關(guān)系如下:
來源于狂神說.png
Workspace:工作區(qū),就是你平時(shí)存放項(xiàng)目代碼的地方
Index / Stage:暫存區(qū),用于臨時(shí)存放你的改動(dòng)触趴,事實(shí)上它只是一個(gè)文件仇祭,保存即將提交到文件列表信息
Repository:倉庫區(qū)(或本地倉庫)没讲,就是安全存放數(shù)據(jù)的位置试伙,這里面有你提交到所有版本的數(shù)據(jù)。其中HEAD指向最新放入倉庫的版本
Remote:遠(yuǎn)程倉庫,托管代碼的服務(wù)器既绕,可以簡單的認(rèn)為是你項(xiàng)目組中的一臺電腦用于遠(yuǎn)程數(shù)據(jù)交換
工作流程
拉取代碼 → 本地修改 → 添加到本地緩存區(qū) → 拉取遠(yuǎn)程代碼 → 推送本地代碼到遠(yuǎn)程分支
四 :Git 的簡單使用
1疲扎、搭建Git 項(xiàng)目
# 自主生產(chǎn)
git init
# 克隆Git xiangmu
git clone 【url】
2、Git 操作
基本操作
# 查看git 狀態(tài)
git status
# 添加文件加入到暫存區(qū)
git add Hello.class
# 暫存區(qū)文件提交到當(dāng)前本地分支
git commit -m "描述提交內(nèi)容"
# 拉取遠(yuǎn)程倉庫代碼
git pull
# 提交本地倉庫到遠(yuǎn)程倉庫
git push origin master
# 查看git 操作歷史 - 獲取 commit_id
git log / git reflog / git log --graph
# 回退到之前版本
git reset --hard commit_id
# 撤銷修改 (文件回到最近一次git commit或git add時(shí)的狀態(tài))
git checkout -- Hello.class
# 刪除文件
git rm Hello.class
# 本地代碼關(guān)聯(lián)遠(yuǎn)程倉庫 (也適用于當(dāng)前代碼遠(yuǎn)程倉庫修改后更新最新版url)
git remote add origin git@server-name:path/repo-name.git
# 第一次推送master分支的所有內(nèi)容
git push -u origin master
分支管理
# 查看所有分支
git branch ( * 號后面的分支為當(dāng)前分支)
git branch -r (遠(yuǎn)程分支)
# 新建分支
git branch dev
# 切換分支
git checkout dev (git checkout -b dev 組合起來)
git switch dev (git switch -c dev 組合起來)
# 合并分支 (將dev 合并到master)
git checkout master
git merge dev
# 刪除分支
git branch -d dev
git branch -D dev (強(qiáng)行刪除)
# 沖突分類
<<<<<<< HEAD
這部分代碼是當(dāng)前分支代碼
=======
這部分代碼是合并或拉去的有沖突代碼
>>>>>>> dev
# 將當(dāng)前工作區(qū)代碼存儲 - 可以解決當(dāng)前工作區(qū)有新增代碼無法切換分支的窘狀
git stash (恢復(fù)到當(dāng)前分支最新代碼)
# 查看當(dāng)前存儲代碼
git stash list
# 恢復(fù)當(dāng)前存儲
git stash apply (恢復(fù)后內(nèi)容不刪除)
# 刪除當(dāng)前存儲
git stash drop
# 恢復(fù)并刪除
git stash pop
# 將其他分支的某一次提交合并到當(dāng)前分支
git cherry-pick commitid
# 查看遠(yuǎn)程庫信息
git remote -v
# 本地分支推送到遠(yuǎn)程分支
git push origin master
# 本地創(chuàng)建和遠(yuǎn)程分支對應(yīng)的分支
git checkout -b branch-name origin/branch-name
# 建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)
git branch --set-upstream branch-name origin/branch-name
# 變基
git rebase
# 創(chuàng)建標(biāo)簽
git tag v1.0
# 查看標(biāo)簽
git tag
# 對之前的某一次提交打標(biāo)簽
git log --pretty=oneline --abbrev-commit
git tag v0.9 f52c633
git tag -a <tagname> -m "blablabla..."
# 查看標(biāo)簽信息
git show v0.9
# 推送本地標(biāo)簽到遠(yuǎn)程
git push origin <tagname>
# 推送全部未推送過的本地標(biāo)簽
git push origin --tags
# 刪除一個(gè)本地標(biāo)簽
git tag -d <tagname>
# 刪除一個(gè)遠(yuǎn)程標(biāo)簽
git push origin :refs/tags/<tagname>
# 本地代碼庫與遠(yuǎn)程代碼庫關(guān)聯(lián) (多用于遠(yuǎn)程倉庫url 修改)
git remote add origin git@gitee.com:wangch/learngit.git
# git 顯示顏色
git config --global color.ui true
# 別名
git config --global alias.st status
五 :Git 名詞解釋
LICENSE : git 許可證
Untracked : 未跟蹤
六 :參考博客
https://www.liaoxuefeng.com/wiki/896043488029600
https://blog.csdn.net/qq_33369905/article/details/106647320