免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
嵌入式項(xiàng)目開發(fā)的 Git & GitHub 實(shí)用教程
本文授權(quán)轉(zhuǎn)載自公眾號(hào)Mculover666,博主擁有同名CSDN博客一、為什么需要版本控制?1. 為什么需要版本控制
在我們每個(gè)人獨(dú)立開發(fā)項(xiàng)目的時(shí)候,都會(huì)不知不覺的用到版本控制,只是我們并不知道“版本控制”這個(gè)名詞,沒有過多的在意~比如我要做一個(gè)數(shù)字電壓表的項(xiàng)目,該項(xiàng)目要實(shí)現(xiàn)的功能是采集0-5V電壓并顯示在OLED屏幕上,其芯片選型如下:主控芯片:STC89C52RC;
AD芯片:ADC0832;
顯示模塊:0.96'OLED(IIC);
首先使用公板(開發(fā)板)開發(fā)軟件程序,大致開發(fā)流程如下:編寫STC89C52RC的串口驅(qū)動(dòng)程序,實(shí)現(xiàn)串口發(fā)送功能,用于后期調(diào)試;
編寫ADC0832的驅(qū)動(dòng)程序,實(shí)現(xiàn)采集電壓值并通過串口發(fā)送功能;
編寫OLED的驅(qū)動(dòng)程序,實(shí)現(xiàn)電壓值實(shí)時(shí)顯示功能;
所以項(xiàng)目文件夾安排如下:
不經(jīng)意間,我們手動(dòng)實(shí)現(xiàn)了該項(xiàng)目的版本控制,每個(gè)文件夾就是一個(gè)版本,這樣做的好處是什么呢?提高代碼重用性
比如其中的01-bsp_uart_tx文件夾,實(shí)現(xiàn)了串口發(fā)送的獨(dú)立功能,當(dāng)下次項(xiàng)目中需要時(shí),可以直接拷貝過去而無需重寫;
方便版本回退(重點(diǎn))
當(dāng)編寫第三個(gè)功能03-adc0832+uart+oled的時(shí)候,因?yàn)樗悸凡磺逦鷮?dǎo)致代碼出錯(cuò),這個(gè)時(shí)候如果將新添加的代碼都找到刪除,工作量非常大,而且效率極低,有了版本控制,我們可以直接在02-adc0832+uart的基礎(chǔ)上重新編寫;
在公板上驗(yàn)證程序無誤后,便可以轉(zhuǎn)入硬件開發(fā):設(shè)計(jì)原理圖,繪制PCB,生產(chǎn)焊接調(diào)試等工作,同樣,在繪制原理圖和PCB時(shí),我們依然可以使用版本控制,在后續(xù)會(huì)有專門的一篇文章簡述電路圖的版本控制,此處不作贅述。2.為什么需要版本控制工具
在上一節(jié)中我們通過多個(gè)文件夾的方式手動(dòng)實(shí)現(xiàn)了版本控制,但是該方式也有一個(gè)非常大的缺點(diǎn):迭代建立文件夾,重復(fù)內(nèi)容多;
版本迭代時(shí)修改的內(nèi)容無法查看;
為了解決這一問題,誕生的主流的版本控制軟件:集中式版本控制工具:SVN
分布式版本控制工具:Git
使用版本控制軟件可以解決這一大問題并且?guī)碓S多其他的優(yōu)點(diǎn),諸如:保存了數(shù)據(jù)當(dāng)前狀態(tài)以及之前每一個(gè)提交的歷史狀態(tài),可以回退到任意一個(gè)版本節(jié)點(diǎn);
在保存每一個(gè)版本的文件信息時(shí)不重復(fù)保存數(shù)據(jù),節(jié)約存儲(chǔ)空間,提高運(yùn)行效率;
可以清楚到看到不同版本間修改的內(nèi)容;
可以多人協(xié)作,團(tuán)隊(duì)開發(fā);
3. 版本控制軟件的多人協(xié)作優(yōu)勢
繼續(xù)拿上面的項(xiàng)目為例來說明版本控制軟件的多人協(xié)作優(yōu)勢~假設(shè):A同學(xué)負(fù)責(zé)adc0832的驅(qū)動(dòng)實(shí)現(xiàn),在main.c中編寫測試函數(shù)進(jìn)行測試;
B同學(xué)負(fù)責(zé)OLED的驅(qū)動(dòng)實(shí)現(xiàn),在main.中編寫測試函數(shù)進(jìn)行測試;
A完成測試后將main.c文件提交到公共服務(wù)器上,當(dāng)B提交main.c后,公有服務(wù)器上A提交的main.c被B提交的文件所覆蓋。使用版本控制軟件即可很好的解決這一問題,并且具有以下優(yōu)勢:協(xié)同修改
多個(gè)人可以修改服務(wù)器上的同一個(gè)文件,互不影響;
權(quán)限管理
對(duì)團(tuán)隊(duì)中參與開發(fā)的人員進(jìn)行權(quán)限控制;
對(duì)團(tuán)隊(duì)外參與開發(fā)的人員貢獻(xiàn)的代碼進(jìn)行審核(Git獨(dú)有);
歷史記錄
查看修改人、修改時(shí)間、修改內(nèi)容、修改日志;
二、Git簡介及安裝詳解 1.Git簡介
Git(官網(wǎng) https://git-scm.com/)是一個(gè)免費(fèi)開源的分布式版本控制系統(tǒng),其最初在2005年由Linux之父Linus使用C語言開發(fā),目的是為了很好的管理Linux內(nèi)核的源代碼,之后,Git日臻成熟完善,得到了廣泛的應(yīng)用。Git在趨向易用的同時(shí),仍然保留著最初設(shè)定的目標(biāo):它的速度飛快,極其適合管理大項(xiàng)目,并且有著令人難以置信的非線性分支管理系統(tǒng)。相較于集中式版本管理系統(tǒng),Git具有以下優(yōu)勢:直接記錄快照,而非差異比較;
幾乎所有操作都是本地執(zhí)行;
Git 保證數(shù)據(jù)完整性;
Git 一般只添加數(shù)據(jù);
Git中的文件有三種狀態(tài):已提交(committed):表示數(shù)據(jù)已經(jīng)安全的保存在本地?cái)?shù)據(jù)庫中;
已修改(modified):表示修改了文件,但還沒保存到數(shù)據(jù)庫中;
已暫存(staged):對(duì)一個(gè)已修改文件的當(dāng)前版本做了標(biāo)記,使之包含在下次提交的快照中;
對(duì)應(yīng)這三種狀態(tài),Git的有三個(gè)工作區(qū)域:Git 倉庫:Git用來保存項(xiàng)目的元數(shù)據(jù)和對(duì)象數(shù)據(jù)庫的地方;
工作目錄:對(duì)項(xiàng)目的某個(gè)版本獨(dú)立提取出來的內(nèi)容;
暫存區(qū)域:保存了下次將提交的文件列表信息;
在這三個(gè)工作區(qū)域的基礎(chǔ)上,Git的基本工作流程如下:在工作目錄中修改文件;
暫存文件,將文件的快照放入暫存區(qū)域;
提交更新,找到暫存區(qū)域的文件,將快照永久性存儲(chǔ)到Git倉庫目錄;
2.在Windows上安裝Git
首先在Git官網(wǎng)下載安裝包:(下載鏈接 https://git-scm.com/downloads)。截止本文發(fā)表時(shí)間,Git最新版為2.23.0,安裝過程同下,無任何影響)。
雙擊安裝包運(yùn)行安裝程序:
安裝完成后嗎,在開始菜單即可看到Git工具:
Git GUI界面如下:
Git命令行如下:
另外,在任意地方點(diǎn)擊右鍵,即可看到Git工具。3.在Linux上安裝Git
Centos/Fedora:
sudo yum install git
Debian/ubuntu:
sudo apt-get install git
4.初次運(yùn)行Git前的配置——設(shè)置用戶名和郵箱
安裝完Git后首先要設(shè)置用戶名和郵箱,因?yàn)镚it的每一次提交都會(huì)使用該信息,并且寫入到每一次提交信息中,不可更改。該信息和Github賬號(hào)無任何關(guān)系,方便起見,建議對(duì)應(yīng)。設(shè)置命令如下:git config --global user.name '<Git用戶名>'
git config --global user.email <Git用戶郵箱>
好啦!今天的Git講解就到這兒,來個(gè)思維導(dǎo)圖回顧一下吧~
思維導(dǎo)圖使用『幕布』繪制
三、Git本地庫操作(倉庫初始化、提交修改) 1.獲取Git倉庫
方法1. 在現(xiàn)有目錄下初始化一個(gè)新的本地倉庫
在Git Bash中進(jìn)入工作目錄或者直接在工作目錄右擊,選擇Git Bash Here打開Git命令行;
使用命令初始化倉庫:
git init
本地倉庫初始化成功后,Git會(huì)在當(dāng)前目錄新建一個(gè).git的隱藏文件夾,該文件夾中包含了初始化的Git倉庫中所有的必須文件,具體在后續(xù)詳細(xì)講解:
方法2.克?。ɡ。┈F(xiàn)有的倉庫到本地
克隆遠(yuǎn)程倉庫的命令格式是:git clone <url>
如果想在克隆的時(shí)候自定義倉庫的名字,格式如下:git clone <url> <new repository name>
2.提交更新到倉庫(重點(diǎn))
在當(dāng)前工作目錄下,Git對(duì)一個(gè)文件的狀態(tài)有兩種:已跟蹤:在上一次提交的快照中有記錄,已被納入版本管理(獲取倉庫時(shí),工作目錄下所有的文件都是已跟蹤文件);
未跟蹤:除已跟蹤文件之外的所有文件都屬于未跟蹤文件。
2.1.查看文件當(dāng)前狀態(tài)
查看工作目錄下所有文件的狀態(tài)命令:git status
當(dāng)文件數(shù)量多時(shí)可以使用-s參數(shù)輸出簡短信息:git status -s
格式說明
左邊的M文件被修改,并且已放入暫存區(qū)
右邊的M文件被修改,未放入暫存區(qū)
MM在工作區(qū)被修改后提交到暫存區(qū),在工作區(qū)又被修改了
A新添加到暫存區(qū)的文件
??新添加的未跟蹤的文件
2.2.跟蹤新文件
git add <文件名或者目錄>
文件名支持通配符`(比如`.c表示工作區(qū)所有c文件);
如果是目錄,則遞歸跟蹤該目錄下所有文件;
使用-A參數(shù)表示跟蹤所有文件:git add -A
2.3.修改當(dāng)前文件
使用vim打開test.c并編輯如下代碼:
#include <stdio.h>
int main(void)
{
printf('Hello World.\n');
return 0;
}
2.4.暫存已修改文件
已跟蹤文件修改后查看狀態(tài),會(huì)提示Changes not staged for commit,這表明文件修改后沒有保存到暫存區(qū),使用如下命令將修改保存到暫存區(qū):git add <文件名>
使用-A參數(shù)表示暫存所有已修改文件:git add -A
2.5.查看未暫存和已暫存的修改
在工作區(qū)工作的時(shí)候,我們想要知道:當(dāng)前做的哪些更新沒有暫存?
有哪些更新已經(jīng)暫存起來準(zhǔn)備下次提交?
使用git status命令只能表明文件,要查看具體內(nèi)容使用該命令:git diff
該命令比較工作目錄中和暫存區(qū)文件的差異,即:已經(jīng)修改但還未暫存的內(nèi)容,最后通過文件補(bǔ)丁的格式表明具體哪些行發(fā)生了變化。如圖,在test.c文件中添加一行代碼:
然后分別使用git status和git diff查看:
如果需要查看已經(jīng)暫存起來的修改使用如下命令:git diff --staged
2.6.提交更新
注:提交操作前請(qǐng)確保已設(shè)置用戶名和郵箱。使用如下命令將暫存區(qū)的內(nèi)容提交到倉庫:git commit
該命令只會(huì)將暫存區(qū)的內(nèi)容提交到倉庫,所以在提交之前需要使用git status查看,確認(rèn)所有改變已經(jīng)暫存。該命令執(zhí)行后會(huì)自動(dòng)調(diào)用默認(rèn)編輯器vim來編輯提交信息,之后保存即可成功提交。如果提交信息比較簡單,可以直接一行搞定:git commit -m '<提交信息>'
每次提交都是對(duì)該項(xiàng)目的一個(gè)快照,在以后的任何時(shí)候都可以回退到該次狀態(tài)。2.7.跳過暫存區(qū)域直接提交更新
先將工作區(qū)的內(nèi)容提交到暫存區(qū),然后將暫存區(qū)的內(nèi)容提交到倉庫,這樣的過程未免過于繁瑣,使用如下命令可以跳過暫存區(qū),直接將工作區(qū)修改的文件(未追蹤的文件不能直接提交)添加到倉庫:git commit -a -m '<提交信息>'
2.8.忽略文件
一般情況下,我們總會(huì)有些文件不需要納入Git 的管理,比如:編譯生成的中間文件、臨時(shí)文件、可執(zhí)行文件等等;
日志文件
……
解決方法:在工作目錄下創(chuàng)建一個(gè)名為.gitignore的文件來列出忽略文件的模式。文件.gitignore的格式規(guī)范如下:所有空行或者以#開頭的行會(huì)被Git忽略;
可以使用標(biāo)準(zhǔn)的glob模式匹配;
匹配模式可以以(/)開頭防止遞歸;
匹配模式可以以(/)結(jié)尾指定目錄;
要忽略指定模式以外的文件或目錄,可以在模式前加(!)表示取反;
在這里我們編輯一個(gè).gitignore文件作為示例:
然后編譯產(chǎn)生中間文件和可執(zhí)行文件:
查看Git對(duì)當(dāng)前文件的狀態(tài):
2.9.移除文件
要從Git的暫存區(qū)和倉庫中移除一個(gè)文件,有兩種情況:從暫存區(qū)刪除,并且從工作目錄刪除源文件:
git rm <文件名>
從暫存區(qū)刪除,保留工作區(qū)的源文件:
git rm --cached <文件名>
好啦!今天的Git講解就到這兒,來個(gè)思維導(dǎo)圖回顧一下吧~
思維導(dǎo)圖使用『幕布』繪制
四、Git本地庫操作(查看提交歷史、版本前進(jìn)回退) 1.查看提交歷史
在提交了很多次修改之后,我們可以使用如下命令回顧提交歷史:git log
該命令默認(rèn)會(huì)按照提交時(shí)間列出所有提交(最新一次提交在最上面),并且列出四個(gè)基本提交信息:提交的SHA-1校驗(yàn)和;
提交的作者信息;
提交時(shí)間;
提交說明;
git log輸出的是完整的提交信息記錄,如果提交次數(shù)非常多時(shí)會(huì)顯得非常的復(fù)雜,所以該命令設(shè)計(jì)了豐富的選項(xiàng)供我們控制輸出,最常用的如下:
2.版本前進(jìn)回退(基于索引值操作)
Git版本前進(jìn)回退的本質(zhì)是移動(dòng)HEAD指針。2.1.版本回退
版本回退使用命令:git reset --hard <索引值>
首先查看文件當(dāng)前內(nèi)容:
然后回退到第一個(gè)版本:
然后再次查看文件內(nèi)容,版本回退成功:
2.2.版本前進(jìn)
版本前進(jìn)也使用相同的命令:git reset --hard <索引值>
當(dāng)前我們?cè)谧畛醯牡谝粋€(gè)版本,現(xiàn)在要前進(jìn)到最新的那個(gè)版本,然后查看內(nèi)容:
2.3.reset的三個(gè)參數(shù)區(qū)別
參數(shù)說明
- -soft僅僅移動(dòng)本地庫HEAD指針
- -mixed移動(dòng)本地庫HEAD指針,重置暫存區(qū)
- -hard移動(dòng)本地庫HEAD指針,重置暫存區(qū),重置工作區(qū)
好啦!今天的Git講解就到這兒,來個(gè)思維導(dǎo)圖回顧一下吧~
思維導(dǎo)圖使用『幕布』繪制
五、Git本地庫操作(分支管理) 1.什么是分支
不知道大家有沒有注意到Git的logo:
GIt的logo中就體現(xiàn)出了Git分支管理的優(yōu)勢,那么,什么是Git的分支呢,且聽我慢慢道來~在版本控制過程中,使用多條線同時(shí)推進(jìn)多個(gè)任務(wù),每一條線就叫做一個(gè)Git分支,如圖:
2.分支的好處
并行推進(jìn)多個(gè)功能的開發(fā),提高開發(fā)效率;
各個(gè)分支在開發(fā)過程中是獨(dú)立的,一個(gè)分支的失敗不會(huì)對(duì)其他分支產(chǎn)生任何影響;
分支開發(fā)失敗后可重新開始;
3.分支的操作
3.1.創(chuàng)建分支
創(chuàng)建分支使用命令:git branch <分支名稱>
3.2.查看分支
查看當(dāng)前所有的分支信息使用命令:git branch -v
3.3.切換分支
切換分支使用命令:git checkout <分支名>
3.4.切換分支后的操作
切換分支后可以進(jìn)行Git的基本操作,比如追蹤文件,添加內(nèi)容到暫存區(qū),提交到本地庫等等。
3.5.合并分支
要將一個(gè)分支所做的更新合并,需要進(jìn)行兩個(gè)操作:切換到要合并的分支上;
執(zhí)行命令:
git merge <待合并的分支名稱>
4.解決合并分支后產(chǎn)生的沖突
4.1.沖突的產(chǎn)生
當(dāng)我們?cè)诓煌姆种闲薷牧送晃募耐粋€(gè)地方的內(nèi)容,在兩者同時(shí)合并到主分支上時(shí)會(huì)產(chǎn)生沖突,合并時(shí)會(huì)提示自動(dòng)合并失敗,進(jìn)入手動(dòng)合并模式,如圖:
4.2.沖突的解決
當(dāng)自動(dòng)合并失敗,Git進(jìn)入手動(dòng)模式后,命令行后會(huì)顯示    MERGING字樣:
在手動(dòng)合并模式下,需要進(jìn)行以下操作:手動(dòng)修改文件,并刪除Git添加的多余符號(hào):
手動(dòng)修改文件到滿意的程度;
添加修改到暫存區(qū)git add <文件名>;
提交更新git commit -m <提交信息>:
好啦!今天的Git講解就到這兒,來個(gè)思維導(dǎo)圖回顧一下吧~
思維導(dǎo)圖使用『幕布』繪制
六、Github遠(yuǎn)程庫操作(創(chuàng)建、拉取、推送、克?。?nbsp;1. 代碼托管中心
Git不僅可以在本地使用本地庫,還可以將本地庫與遠(yuǎn)程庫產(chǎn)生關(guān)聯(lián),代碼托管中心就是用來維護(hù)遠(yuǎn)程庫的。在局域網(wǎng)環(huán)境下,可以在公有的服務(wù)器上使用Gitlab搭建一個(gè)代碼托管中心;
在外網(wǎng)環(huán)境下,可以使用Github或者碼云這樣的第三方代碼托管中心。
2. Github
GitHub(https://github.com)就是典型的第三方代碼托管中心,于2008年4月10日正式上線,目前在2018年6月4日,微軟宣布,通過75億美元的股票交易收購代碼托管平臺(tái)GitHub。因?yàn)镚ithub只支持Git 作為唯一的版本庫格式進(jìn)行托管,故名GitHub,另外,除了Git代碼倉庫托管及基本的 Web管理界面以外,還提供了訂閱、討論組、文本渲染、在線文件編輯器、協(xié)作圖譜(報(bào)表)、代碼片段分享(Gist)等功能。首次訪問Github官網(wǎng)時(shí)會(huì)默認(rèn)打開注冊(cè)頁面,直接使用郵箱注冊(cè)即可。
3. Git和Github聯(lián)合操作
3.1.創(chuàng)建本地庫
創(chuàng)建一個(gè)空的本地庫用來測試遠(yuǎn)程庫:
3.2.創(chuàng)建遠(yuǎn)程庫
在Github首頁的右上角,如圖,選擇New repository來創(chuàng)建一個(gè)新的遠(yuǎn)程庫:
填寫倉庫信息:
倉庫創(chuàng)建成功:
3.3. 給遠(yuǎn)程庫地址取別名
遠(yuǎn)程庫地址可以在Github上看到,因?yàn)镚it支持多種協(xié)議,包含HTTPS和SSH,所以選擇這兩種的任何一種都是可以的:
Git根據(jù)這個(gè)遠(yuǎn)程庫地址進(jìn)行推送和拉取操作,但是每個(gè)命令都得帶上這個(gè)地址顯得太麻煩了,所以可以先在Git中給這個(gè)地址取個(gè)別名,使用命令:git remote add <別名> <遠(yuǎn)程庫地址>
比如在這里將遠(yuǎn)程庫地址取個(gè)別名叫origin,后續(xù)我們就不需要輸入冗長的地址了,直接使用origin代替即可:
3.4.拉取操作(遠(yuǎn)程庫 -> 本地庫)
特別注意:如果遠(yuǎn)程庫有更新(比如在新建的時(shí)候創(chuàng)建了README文件),不能進(jìn)行推送,必須先進(jìn)行拉取操作。首先將遠(yuǎn)程庫中的內(nèi)容拉取下來,同步到本地庫,使用命令:git pull <遠(yuǎn)程庫地址名> <遠(yuǎn)程分支名稱>
在文件夾可以看到遠(yuǎn)程庫的內(nèi)容被拉取到本地文件夾:
3.5.推送操作(本地庫->遠(yuǎn)程庫)
使用如下命令進(jìn)行推送操作,將本地庫的內(nèi)容推送到遠(yuǎn)程庫中:git push <遠(yuǎn)程庫地址/別名> <要推送信息的分支(本地)>
這里首先在本地庫創(chuàng)建一個(gè)HelloWorld程序的C文件,然后提交一次更新:
然后向遠(yuǎn)程庫進(jìn)行推送:git push origin master
首次推送時(shí)Github會(huì)驗(yàn)證身份,自動(dòng)彈出Github登錄框,登錄即可:
登錄后Git即可完成推送:
完成推送后在Github上即可看到最新的更新:
4.克隆(拉?。┻h(yuǎn)程庫
除了這種方式外,還有一種簡便的方式——克隆遠(yuǎn)程庫,使用命令:git clone <遠(yuǎn)程庫url>
先在Github上新建一個(gè)遠(yuǎn)程倉庫,然后克隆到本地:
這樣克隆的效果有(重點(diǎn)):將遠(yuǎn)程倉庫的所有內(nèi)容克隆到本地(避免了拉取操作);
默認(rèn)創(chuàng)建了origin作為遠(yuǎn)程倉庫地址的別名(避免了取別名的操作);
初始化了本地庫(避免了初始化操作);
克隆成功后可以直接進(jìn)行拉取和推送操作,如下:
在Github查看是否推送成功:
好啦!今天的Git講解就到這兒,來個(gè)思維導(dǎo)圖回顧一下吧~
思維導(dǎo)圖使用『幕布』繪制
七、Github遠(yuǎn)程庫操作(邀請(qǐng)遠(yuǎn)程庫協(xié)作者) 0.準(zhǔn)備工作
要學(xué)習(xí)如何在Github上進(jìn)行團(tuán)隊(duì)協(xié)作,請(qǐng)注冊(cè)一個(gè)另外的Github賬號(hào),方便學(xué)習(xí)。這里我注冊(cè)的新的Github賬號(hào)為:mculover666-2
1768391279@qq.com
在同一臺(tái)電腦上進(jìn)行多個(gè)Git賬號(hào)的操作比較麻煩,建議使用虛擬機(jī),在虛擬機(jī)中登錄另一個(gè)賬號(hào)。1.協(xié)作者將遠(yuǎn)程倉庫克隆到本地
首先,團(tuán)隊(duì)的合作者需要將倉庫克隆到本地,在上一篇文章中講述了克隆的好處,這里再次說明:完成本地庫初始化操作;
默認(rèn)將遠(yuǎn)程庫地址別名設(shè)置為origin;
默認(rèn)將遠(yuǎn)程庫的所有內(nèi)容拉取到本地;
拉取之后,我們可以進(jìn)行一切本地庫可以進(jìn)行的操作,比如查看狀態(tài),提交更新,查看更新記錄等等,這里我們修改文件,并在本地庫提交一次更新:
然后嘗試將該提交推送到遠(yuǎn)程庫,發(fā)生錯(cuò)誤:
這是因?yàn)镚ithub上的遠(yuǎn)程倉庫Git_test是歸屬于mculover666的,這里虛擬機(jī)中的mculvoer666-2成員沒有權(quán)限去修改這個(gè)遠(yuǎn)程倉庫,所以操作被禁止。2.邀請(qǐng)團(tuán)隊(duì)成員(協(xié)作者)加入
2.1.遠(yuǎn)程庫所有者發(fā)送邀請(qǐng)
邀請(qǐng)團(tuán)隊(duì)成員加入需要在Github上完成:
這里Github已經(jīng)自動(dòng)向被邀請(qǐng)者發(fā)送了邀請(qǐng)郵件,當(dāng)然也可以自己復(fù)制邀請(qǐng)鏈接,發(fā)送給被邀請(qǐng)者;2.2.接受邀請(qǐng)
被邀請(qǐng)者收到的郵件信息如下:
這樣就邀請(qǐng)成功了,再次在命令行中推送一下提交,推送成功:
3.拉取最新更改
這里mculover666-2向遠(yuǎn)程庫提交了更改,mculover666需要將此次修改拉取下來,更新到本地,直接使用拉取命令即可:
4. 團(tuán)隊(duì)協(xié)作時(shí)需要注意的沖突
在團(tuán)隊(duì)中所有的協(xié)作者同時(shí)工作時(shí),會(huì)發(fā)生兩種沖突:1) 當(dāng)一個(gè)協(xié)作者向遠(yuǎn)程庫推送了更新后,其他所有的協(xié)作者都不能再做推送,必須先將遠(yuǎn)程庫的最新更新拉取,之后才能推送;2) 當(dāng)拉取了遠(yuǎn)程庫的最新內(nèi)容后,如果修改和本地修改的地方相同,會(huì)導(dǎo)致自動(dòng)合并失敗,進(jìn)入手動(dòng)合并模式。好啦!今天的Git講解就到這兒,來個(gè)思維導(dǎo)圖回顧一下吧~
思維導(dǎo)圖使用『幕布』繪制
八、Github遠(yuǎn)程庫操作(使用PR貢獻(xiàn)代碼) 0.什么是跨團(tuán)隊(duì)協(xié)作和pr
在上一篇文章中講述了如何邀請(qǐng)團(tuán)隊(duì)的協(xié)作者,同一個(gè)團(tuán)隊(duì)中的人同時(shí)協(xié)作,但是Github的優(yōu)勢在于可以跨團(tuán)隊(duì)協(xié)作,即:開發(fā)者不需要加入團(tuán)隊(duì)也可以貢獻(xiàn)代碼,稱之為跨團(tuán)隊(duì)協(xié)作。團(tuán)隊(duì)之外的開發(fā)者想要對(duì)該項(xiàng)目貢獻(xiàn)代碼需要進(jìn)行如下操作:開發(fā)者Fork一份遠(yuǎn)程倉庫到自己的倉庫中
在自己的倉庫進(jìn)行修改,提交更新
更新完畢提交pr(pull request)
項(xiàng)目擁有者審核代碼
項(xiàng)目擁有者合并代碼
學(xué)會(huì)了PR操作之后,我們可以在Github上的開源項(xiàng)目貢獻(xiàn)自己的代碼,給大家看看我的Github,圈出的項(xiàng)目都是Fork之后貢獻(xiàn)代碼所使用的:
1.開發(fā)者Fork倉庫
首先你需要再注冊(cè)一個(gè)新的Github賬號(hào),如果已經(jīng)在上一篇文章中將新的賬號(hào)設(shè)為協(xié)作者,需要先從協(xié)作者中去除。開發(fā)者使用自己的賬號(hào)登錄Github,然后訪問想要貢獻(xiàn)代碼的倉庫,點(diǎn)擊Fork即可:
Fork之后,該倉庫從原有的mculover666的倉庫中克隆了一份出來,并且克隆出的新倉庫歸屬于mculvoer666-2:
2.開發(fā)者進(jìn)行修改,提交更新,推送
開發(fā)者Fork了倉庫后,便可以在自己的本地庫和遠(yuǎn)程庫之間進(jìn)行操作,比如提交更新,推送,拉取等等操作。比如在這里我進(jìn)行如下操作:將新的倉庫克隆到本地;
進(jìn)行修改
提交更新
推送到遠(yuǎn)程庫
推送之后再來Github看看是否成功:
3.開發(fā)者提交請(qǐng)求(PR)
開發(fā)者在自己的倉庫修改完畢后,需要將自己的修改提交到原本的倉庫,這個(gè)時(shí)候就需要進(jìn)行PR操作,即pull request,提交請(qǐng)求:
首先可以準(zhǔn)確的看到文件更改情況:
至此,開發(fā)者的一個(gè)請(qǐng)求就提交成功了。4. 倉庫擁有者審核代碼,合并代碼
審查修改無誤后合并代碼:
可以在會(huì)話窗口與提交者會(huì)話:
最后,在Github上查看一下文件,檢查是否成功:
5.拉取最新版本,為下一次推送做好準(zhǔn)備
將Github上的最新版本拉取到本地,為下一次的推送做好準(zhǔn)備:
拉取之后查看文件,是否為最新修改的:
好啦!今天的Git講解就到這兒,來個(gè)思維導(dǎo)圖回顧一下吧~
思維導(dǎo)圖使用『幕布』繪制
九、使用VS Code進(jìn)行Git可視化操作 0. 使用VS Code進(jìn)行Git可視化操作
VS Code內(nèi)置了對(duì)Git的支持,可以使用圖形化界面方便的進(jìn)行版本控制,比如暫存,提交更新,推送,拉取這些常規(guī)操作,特別在比較文件差異方面有著得天獨(dú)厚的優(yōu)勢,但是前提是:已經(jīng)安裝了VScode并且了解其使用
電腦上必須安裝了Git并且你了解Git的常用命令行操作
注:關(guān)于VScode可以查看我的10篇原創(chuàng)教程《宇宙最強(qiáng)編輯器VS code》。1.設(shè)置git.path
Git的安裝可以參考我的第二篇文章(Git實(shí)用教程(二) | Git簡介及安裝詳解),在安裝過程中有一步如下:
大多數(shù)人經(jīng)常使用的是Git自帶的命令行工具Git bash,為了不影響其它windows命令,安裝時(shí)會(huì)選擇第一個(gè),那么,VS Code啟動(dòng)后是找不到Git所在位置的,必須要自己設(shè)置git.path,否則打開Git存儲(chǔ)庫(如果是普通文件夾,請(qǐng)先使用git init初始化為Git倉庫)會(huì)出現(xiàn)如下提示:
切換到源代碼管理視圖,也可以看到錯(cuò)誤提示:
解決方法如下:使用Ctrl+Shift+P打開命令面板,輸入setting,選擇首選項(xiàng):打開設(shè)置(json):
添加git.path一項(xiàng),目錄為當(dāng)前電腦上git.exe所在目錄,如圖:
保存,重新用VS Code打開Git存儲(chǔ)庫:
2.本地庫基本操作
2.1.修改文件
對(duì)本地庫進(jìn)行修改,創(chuàng)建一個(gè)新的test.c文件,并添加一段代碼,可以看到VS Code會(huì)自動(dòng)顯示出更改:
2.2.暫存修改
在命令行中將當(dāng)前修改暫存使用命令git add <文件名>,但在VS Code中,可以以圖形化方式操作,并且可以清楚到當(dāng)前暫存區(qū)和修改區(qū)的內(nèi)容:
2.3.提交更新到本地庫
同樣,在命令行中將暫存區(qū)內(nèi)容提交到本地庫使用命令git commit -m <提交信息>,在VS Code中,可以以圖形化方式操作:
點(diǎn)擊提交按鈕之后,會(huì)彈出輸入提交信息的對(duì)話框,輸入提交信息即可:
修改區(qū)和暫存區(qū)內(nèi)容清空,如圖:
3.安裝Git擴(kuò)展添加更多功能
VS Code內(nèi)部集成的Git僅僅支持一些基本操作,我們可以安裝Git擴(kuò)展來支持更多功能,比如git-extension-pack這個(gè)擴(kuò)展:
在VS Code擴(kuò)展搜索git,選擇該擴(kuò)展,安裝:
3.1.查看提交歷史
3.2.隨時(shí)查看當(dāng)前內(nèi)容的狀態(tài)
3.3.隨時(shí)查看倉庫狀態(tài)
3.4.查看文件差異
3.5. 切換當(dāng)前分支
3.6. 查看分支之間的差異和合并分支
可以看到結(jié)果如下:
查看文件差異之后將分支合并到master,打開命令行輸入git merge:
選擇要合并到當(dāng)前分支的分支:
如果可以自動(dòng)合并失敗,則會(huì)出現(xiàn)以下界面:
直接在編輯器中手動(dòng)修改沖突,修改之后保存即可:
4.遠(yuǎn)程庫操作
注:如果本地的存儲(chǔ)庫是克隆下來的,或者已經(jīng)手動(dòng)添加了遠(yuǎn)程庫地址,則可以直接進(jìn)行推送和拉取操作。4.1.在Github上新建一個(gè)遠(yuǎn)程庫
4.2.添加遠(yuǎn)程庫
使用Ctrl+Shift+P打開命令面板,輸入git add,選擇添加遠(yuǎn)程庫:
填寫遠(yuǎn)程庫地址的別名:
填寫遠(yuǎn)程庫地址:
4.3.推送內(nèi)容到遠(yuǎn)程庫
5.更多Git操作
至此,使用VS Code配合Git進(jìn)行一些本地庫和遠(yuǎn)程庫基本操作就講述完了,些許有些意猶未盡,其實(shí),VS Code內(nèi)置的Git擴(kuò)展還有很多命令可以執(zhí)行,比如:初始化本地庫,克隆遠(yuǎn)程庫,拉取遠(yuǎn)程庫內(nèi)容等等,使用Ctrl+Shift+P打開命令面板,輸入git即可看到所有,有興趣的小伙伴可以自己嘗試一下:
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
為初學(xué)者提供的終極Git命令教程----你需要知道的一切
推薦!手把手教你使用Git | 互聯(lián)網(wǎng)的那點(diǎn)事
手把手教你使用Git
git命令
git常用命令(4) —— 與遠(yuǎn)程倉庫的關(guān)聯(lián)和推送/獲取相關(guān)
談一談|如何快速上手Git
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服