Git是什么?
一款分布式版本管理的軟件,Linux 內(nèi)核,通過....操作...!!!
- 分布式
小組內(nèi)每個(gè)人本地電腦上都可以有一個(gè)完整版本 - 版本管理
可以記錄下我們每一次對(duì)代碼的新增、修改,刪除,返回 等操作
跟GitHub又有什么關(guān)系
git與github 是什么關(guān)系?
項(xiàng)目這個(gè)東西肯定大家一塊擼開心呀!
建國(guó)做登錄,我做支付
思考一下,如果我登錄做完了,我兩代碼要怎么合并
我把189,190行粘給你,你把184行粘給我 并不是這樣的
我們都提交一個(gè)位置, 大家都在這進(jìn)行同步好了
建國(guó)寫完 提交線上 我也也要提交,這個(gè)時(shí)候
git的作用就是檢查看你們兩寫的有沒有重復(fù)
github的作用就是 沒有重復(fù)好,提交到我這里,我保管
此刻你可以理解 他們兩個(gè)是合作關(guān)系 github就是一個(gè)線上代碼倉(cāng)庫(kù)
有同學(xué)說了 咱們國(guó)人有個(gè)叫碼云線上倉(cāng)庫(kù)跟github一樣?
一毛一樣,并且我推薦使用碼云
你的代碼是提交到github還是提交到gitlab 只需要修改一下地址就好
git操作命令都是一致的
一圖勝千言

與上圖一樣 我的代碼提交到線上github ,然后建國(guó),韓梅梅,拼西西,都去github拉取代碼
思想
現(xiàn)在你要有一個(gè)思想,線上庫(kù)(github) 本地庫(kù)(git)
先完成提交本地,在提交線上,注意順序,這個(gè)思想貫穿全劇
創(chuàng)建一個(gè) 完全 空的倉(cāng)庫(kù)

獲取線上庫(kù)項(xiàng)目地址: https://github.com/xxx/test
本地完整提交流程
拉取代碼 git clone https://github.com/xxx/test
- 點(diǎn)擊進(jìn)入項(xiàng)目
- 注意windows需要設(shè)置 顯示隱藏文件
- 你會(huì)看到一個(gè).git 這個(gè)就是git配置文件
第一步 查看狀態(tài) git status
- 嘗試修改一些內(nèi)容 ,執(zhí)行 git status
- 你會(huì)發(fā)現(xiàn)一個(gè)紅色文件, git記錄你修改文件
第二部 git add .
- 我今天開發(fā)工作結(jié)束,或者我這個(gè)功能開發(fā)完了,需要存檔
- 執(zhí)行 git add . 將所有更改加入追蹤,就是可以提交
- 在執(zhí)行一個(gè)查看狀態(tài)(git status),你會(huì)發(fā)現(xiàn)剛才文件名變成綠色
第三部 git commit -m 給我這次修改,加上一條說明
- 這個(gè)修改你做了什么 ? 在此次修改打上一個(gè)日志
- 就想我打游戲存了一個(gè)檔,代碼蹦了不要緊 我可以重新開始
- 初次使用需要配置個(gè)人的用戶名稱和電子郵件地址
配置個(gè)人的用戶名稱和電子郵件地址,Git 每一次提交時(shí)都會(huì)引用這兩條信息,說明是誰(shuí)提交了更新,并記錄歷史.沒有添加信息,不能給文件加log,與登錄賬號(hào)密碼無關(guān)
$ git config --global user.name "注冊(cè)名稱,github登錄界面右上角查看"
$ git config --global user.email "注冊(cè)郵箱@xxx"
$ git config --list 查看
事情到這里 你已經(jīng)完整的完成了一次 本地提交
線上更新
代碼需要與其他小伙伴同步你的代碼,咱們需要同步更新云倉(cāng)庫(kù) github
git push // 提交到線上當(dāng)前分支
此時(shí)你做完,本地存檔,并且線上更新操作,是不是很簡(jiǎn)單
代碼下載流程
git clone https://github.com/name/xxxx 下載默認(rèn)分支
git clone -b <branch> https://github.com/name/xxxx 下載指定分支
git checkout -b <branch> <origin/branch> "已有工程取遠(yuǎn)程分支并與本地分支同步"
代碼更新流程
git pull 拉取當(dāng)前最新內(nèi)容
git pull origin <branch> 拉取指定分支最新內(nèi)容
常規(guī)操作
遠(yuǎn)程提交流程
遠(yuǎn)程提交需要每次輸入賬號(hào)密碼
也可輸入緩存命令,在進(jìn)行一次提交,完成緩存賬號(hào)密碼到本地
git push "提交默認(rèn)遠(yuǎn)程分支"
git push origin <branch> "提交庫(kù)并創(chuàng)建分支"
緩存本地賬號(hào)密碼
git config --global credential.helper store
如果輸入錯(cuò)誤,清除緩存
git credential-manager uninstall
分之操作 (branch)
版本迭代每一個(gè)版本修改內(nèi)容不能混淆,就需要進(jìn)行分支操作
查看分支
git branch -r // 查看遠(yuǎn)程分之:
git branch -v // 查看本地分之
git branch -a // 查看所有分之
git fetch // 更新本地遠(yuǎn)程分支
新建分支
// 創(chuàng)建分支
git branch <branch>
//切換分支
git checkout <branch>
// 或者 創(chuàng)建同時(shí)并且移動(dòng)
git checkout -b <branch>
// 寫入創(chuàng)建分支日志
git commit -m "init_branch_info"
// 提交遠(yuǎn)程庫(kù)
git push origin <branch>
分之合并
注意: 分支合并之前 git status 工作區(qū)要是干凈的
例如: dev 合并 master dev的版本一定高于master
git checkout master
git merge dev
退出Vi編輯模式 :wq
回滾版本
$ git log //查看所有日志
$ git reset --hard c75284e3ad99b6f43641d91168aa82322e6cfbd5 //根據(jù)40位的哈希值,回滾代碼
//不要再主要分之上面操作
$ git push -f //強(qiáng)制提交
$ git revert HEAD //回滾最后一次提交
恢復(fù)刪除分之
// 刪除分支
// 刪除本地分支
git branch -D <branchName>
// 刪除遠(yuǎn)程分支
git push origin :dev
//恢復(fù)分支
// 獲取刪除分支日志 log 獲取 HEAD@{4}
$ git reflog
// 根據(jù) HEAD碼選擇恢復(fù)那個(gè)已經(jīng)刪除分支
$ git branch <branch_name> HEAD@{4}
從零本次初始化版本庫(kù)
git init // 初始化
git remote add origin https://gitee.com/msea/interview
git remote -v // 查看
git branch --set-upstream-to=origin/master master
git pull origin master --allow-unrelated-histories // 拉取遠(yuǎn)程庫(kù),并更新本地,并建立聯(lián)系,可能會(huì)沖突
git remote remove origin // 重新添加需要先刪除遠(yuǎn)程庫(kù)連接
//在執(zhí)行提交流程
nrm 源管理工具
國(guó)內(nèi)一般使用 淘寶鏡像,方便我們 在npm 與淘寶鏡像源進(jìn)行切換
npm install -g nrm
nrm ls 查看當(dāng)前使用源,帶*的是當(dāng)前使用的源
nrm use taobao 使用淘寶鏡像源
命令行常用操作
$ vi 打開一個(gè)文件 esc :wq //退出linux命令行
$ i 光標(biāo)出現(xiàn) insert //編輯狀態(tài)
$ touch file.txt //創(chuàng)建文件
$ madir // 創(chuàng)建文件
$ rm //刪除文件
$ rm -f file.txt //刪除文件
$ rm -d menghai //刪除一個(gè)空目錄
$ rm -rf haiyang //遞歸刪除當(dāng)前空目錄
注意當(dāng)項(xiàng)目正式上線
從master 上面打一個(gè) tag tag_1.1.0_20210901 寫好備注,記錄一下當(dāng)前的版本
使用規(guī)范,本地預(yù)留
master 正式分支
pre 預(yù)上線分支
test 測(cè)試分支
dev 開發(fā)分支
合并兩個(gè)不相關(guān)的分支
git pull origin master --allow-unrelated-histories
更新線上代碼到本地
git fetch
覺得幫到您記得點(diǎn)贊