使用Git上傳本地倉(cāng)庫(kù)到github倉(cāng)庫(kù)的實(shí)現(xiàn)
Git基礎(chǔ)概念
版本控制簡(jiǎn)介
版本控制是一種管理文件變化歷史的技術(shù),允許我們
- ①記錄文件每次修改的內(nèi)容、時(shí)間和作者;
- ②回退到歷史版本;
- ③多人協(xié)作開(kāi)發(fā)代碼
Git工作原理
git可以分為工作區(qū)、暫存區(qū)、本地倉(cāng)庫(kù)、遠(yuǎn)程倉(cāng)庫(kù)。前三者都存在于本地計(jì)算機(jī)。
- 工作區(qū):電腦上真實(shí)看到喝編輯的文件夾。文件修改后不會(huì)立刻被 Git 管理,需要用
git add
filename加入到暫存區(qū) - 暫存區(qū):一個(gè)臨時(shí)緩沖區(qū),用于存放“準(zhǔn)備好提交”的改動(dòng)。使用git commit -m "提交說(shuō)明" 把暫存區(qū)的文件加入本地倉(cāng)庫(kù)。
- 本地倉(cāng)庫(kù):電腦上的Git 倉(cāng)庫(kù),通過(guò)快照記錄了所有版本歷史??梢曰厮莺筒榭礆v史版本。通過(guò)git push可以把本地倉(cāng)庫(kù)上傳到遠(yuǎn)程倉(cāng)庫(kù)。
- 遠(yuǎn)程倉(cāng)庫(kù):存放在服務(wù)器上的 Git 倉(cāng)庫(kù),比如 GitHub、Gitee。多人協(xié)作、備份項(xiàng)目、部署應(yīng)用都依賴(lài)遠(yuǎn)程倉(cāng)庫(kù)
Git與集中式版本控制的區(qū)別
- 集中式版本控制(SVN、CVS):所有版本歷史集中存儲(chǔ)在中央服務(wù)器,客戶(hù)端僅保存當(dāng)前版本。
- 分布式版本控制(Git、Mercurial):每個(gè)開(kāi)發(fā)者的電腦上都有完整的版本庫(kù)副本,脫機(jī)也能操作。
全流程操作
1、安裝好git之后,右擊項(xiàng)目文件夾,點(diǎn)擊open git bash here,打開(kāi)終端。
2、配置git用戶(hù)信息(第一次使用時(shí)),昵稱(chēng)隨意取,郵箱和遠(yuǎn)程倉(cāng)庫(kù)的注冊(cè)郵箱對(duì)應(yīng)。
git config --global user.name "你的名字" git config --global user.email "你的郵箱"
3、初始化倉(cāng)庫(kù),會(huì)在該文件夾下創(chuàng)建.git文件,讓該目錄變成git倉(cāng)庫(kù)。
git init
4、提交到本地倉(cāng)庫(kù)
先添加文件到暫存區(qū),.代表所有文件,可以替換成具體的文件名。
git add .
在提交到本地倉(cāng)庫(kù)。
git commit -m "首次提交:添加項(xiàng)目文件"
5、在github上創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)
登陸 GitHub → New repository → 起個(gè)名字 → 創(chuàng)建。
隨后拿到倉(cāng)庫(kù)地址,如https://github.com/yourname/myproject.git
6、關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
git remote add origin https://github.com/yourname/myproject.git
7、git配置代理。不配置可能導(dǎo)致git連接不了github。端口改成你使用的代理器所使用的端口??梢栽谠O(shè)置里搜代理在手動(dòng)設(shè)置代理那里查看。
git config --global http.proxy http://127.0.0.1:端口 git config --global https.proxy http://127.0.0.1:端口
8、推送本地代碼到github,這時(shí)候需要登錄GitHub,可以使用密碼登錄也可以使用token登錄。token在GitHub上可以申請(qǐng),記得勾選權(quán)限。
git push -u origin main
分支管理
創(chuàng)建與切換分支
# 創(chuàng)建分支 git branch 分支名 #切換分支 git checkout 分支名 #創(chuàng)建并切換分支,等效于上面兩個(gè)指令 git checkout -b 分支名
查看與合并分支(git merge
)
#查看所有分支 當(dāng)前所在分支前會(huì)有 * git branch #合并分支,從當(dāng)前分支合并另一個(gè)分支 git merge 另一個(gè)分支名
解決合并沖突
合并時(shí),如果兩個(gè)分支改動(dòng)了同一個(gè)地方,會(huì)出現(xiàn)沖突,導(dǎo)致無(wú)法合并。如
CONFLICT (content): Merge conflict in file.txt
解決方法:打開(kāi)沖突文件,找到?jīng)_突標(biāo)記(<<<<<<<
, =======
, >>>>>>>
),進(jìn)行修改成想要的最終內(nèi)容,在重新add和commit
刪除分支
# 刪除本地分支 git branch -d 分支名 # 安全刪除(分支已合并才允許) git branch -D 分支名 # 強(qiáng)制刪除 # 刪除遠(yuǎn)程分支 git push origin --delete 分支名
重命名分支
git branch -m 新名字
遠(yuǎn)程倉(cāng)庫(kù)與GitHub
Fork與Pull Request流程
適用場(chǎng)景:不能直接 push 到別人的倉(cāng)庫(kù)時(shí)(如開(kāi)源項(xiàng)目)
流程為:
- ①Fork 項(xiàng)目
- ②本地 clone 你的 fork
- ③創(chuàng)建新分支開(kāi)發(fā) git checkout -b fix-typo
- ④修改并提交代碼:git add . && git commit -m "修復(fù)錯(cuò)別字"
- ⑤推送分支到你的 GitHub 倉(cāng)庫(kù):git push origin fix-typo
- ⑥在 GitHub 上發(fā)起 Pull Request(簡(jiǎn)稱(chēng) PR),等待作者審核并合并。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Idea 2019.3 本應(yīng)該搜索到的插件卻搜索不到的解決方法
這篇文章主要介紹了Idea 2019.3 本應(yīng)該搜索到的插件卻搜索不到,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06git?stash使用場(chǎng)景及常見(jiàn)方法詳解
這篇文章主要為大家介紹了git?stash使用場(chǎng)景及常見(jiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Git第一次初始化項(xiàng)目到遠(yuǎn)程倉(cāng)庫(kù)方式
本文介紹了Git倉(cāng)庫(kù)的初始化和遠(yuǎn)程連接的基本步驟,首先,使用git init命令初始化本地倉(cāng)庫(kù),創(chuàng)建“.git”文件夾,然后,通過(guò)git remote add命令添加遠(yuǎn)程倉(cāng)庫(kù)地址,遇到Permission denied(publickey)錯(cuò)誤時(shí),需生成SSH key并添加至遠(yuǎn)程倉(cāng)庫(kù)2024-09-09推薦幾個(gè)好用的WordPress媒體庫(kù)分類(lèi)/文件夾管理插件
這篇文章主要介紹了推薦幾個(gè)好用的WordPress媒體庫(kù)分類(lèi)/文件夾管理插件2021-09-09IIS 301重定向與程序代碼實(shí)現(xiàn)301重定向的差別
過(guò)IIS做301重定向確可以實(shí)現(xiàn)傳遞網(wǎng)站的權(quán)重,還不會(huì)導(dǎo)致流量丟失。2010-11-11VSCode使用ssh密鑰免密遠(yuǎn)程登錄服務(wù)器的方法
本文主要介紹了VSCode使用ssh密鑰免密遠(yuǎn)程登錄服務(wù)器的方法,文中通過(guò)圖文代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08VS Code使用Git可視化管理源代碼詳細(xì)教程(推薦)
這篇文章主要介紹了VS Code使用Git可視化管理源代碼詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02