使用git開(kāi)發(fā)項(xiàng)目流程總結(jié)

首先要明白四個(gè)空間:遠(yuǎn)程倉(cāng)庫(kù)簇抵,本地倉(cāng)庫(kù),本地緩存區(qū)妻味,本地工作區(qū)正压;

遠(yuǎn)程倉(cāng)庫(kù):該倉(cāng)庫(kù)是一個(gè)集中的數(shù)據(jù)倉(cāng)庫(kù),正常情況下责球,所有參與開(kāi)發(fā)的人員的代碼最后都會(huì)提交到該倉(cāng)庫(kù)的自己的分支上焦履,再由具有合并權(quán)限的人員來(lái)合并所有分支拓劝;

本地倉(cāng)庫(kù):一般來(lái)說(shuō),本地倉(cāng)庫(kù)是由開(kāi)發(fā)人員通過(guò)clone復(fù)制遠(yuǎn)程倉(cāng)庫(kù)中的某個(gè)分支的數(shù)據(jù)到本地而產(chǎn)生的嘉裤,但git不是集中式的版本控制郑临,而是分布式的版本控制,他們的區(qū)別就是屑宠,分布式版本控制中每一個(gè)倉(cāng)庫(kù)都能具有遠(yuǎn)程倉(cāng)庫(kù)的作用厢洞,而集中式的版本控制中遠(yuǎn)程倉(cāng)庫(kù)是不能被其他參與開(kāi)發(fā)的人備份的;

本地緩存:在本地修改數(shù)據(jù)后(一般是指我們?cè)诰庉嬈髦行薷哪硞€(gè)文件)典奉,git監(jiān)測(cè)到該數(shù)據(jù)與本地?cái)?shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)不一致躺翻,會(huì)提示將該修改增加(add)到緩存區(qū),緩存區(qū)中的文件可以用來(lái)與本地倉(cāng)庫(kù)中的文件進(jìn)行比較(difftool)卫玖,這個(gè)用處目前感覺(jué)主要用于當(dāng)我們修改很多文件時(shí)公你,最后不記得自己修改了那些文件,如果沒(méi)有緩存區(qū)假瞬,我們直接提交的話陕靠,很容易會(huì)導(dǎo)致很多疏忽。我們?cè)诰庉嬈髦行薷牧宋募螅ū镜毓ぷ鲄^(qū))脱茉,本地緩存中不包含我們的修改的剪芥,只有當(dāng)我們把本次的修改add到緩存區(qū)的時(shí)候,緩存區(qū)中才有本次的修改琴许,這表明我們的每一次修改都必須手動(dòng)add到本地緩存中才能在使用commit命令時(shí)將其添加到本地倉(cāng)庫(kù)税肪。

本地工作區(qū):也就是我們的編輯器的空間;

現(xiàn)在開(kāi)始使用git的開(kāi)發(fā)流程了:

1.初始化本地倉(cāng)庫(kù)虚吟,打開(kāi)終端寸认,輸入以下內(nèi)容:

? ?git init

?該命令會(huì)在本地的當(dāng)前目錄創(chuàng)建一個(gè)空的本地倉(cāng)庫(kù),也就是第二步中從遠(yuǎn)程倉(cāng)庫(kù)克隆的項(xiàng)目被放置的地方串慰;

1.克隆遠(yuǎn)程倉(cāng)庫(kù)項(xiàng)目到本地:

? git clone +遠(yuǎn)程倉(cāng)庫(kù)的地址(例子如下)

?git clone git://github.com/schacon/ticgit.git

執(zhí)行完該命令后偏塞,本地倉(cāng)庫(kù)中應(yīng)具有遠(yuǎn)程倉(cāng)庫(kù)中默認(rèn)的master分支中的數(shù)據(jù);

2.進(jìn)入該項(xiàng)目的目錄邦鲫,查看分支狀態(tài)灸叼;

? cd 目錄名

? git status(查看當(dāng)前狀態(tài),這個(gè)狀態(tài)包括以下數(shù)據(jù):當(dāng)前在那個(gè)分支上庆捺,當(dāng)前緩存區(qū)數(shù)據(jù)狀態(tài)(change to commit)古今,修改了數(shù)據(jù)但是沒(méi)有add到緩存區(qū)的文件狀態(tài)(change but not update),當(dāng)前倉(cāng)庫(kù)中還沒(méi)被追蹤的文件(Untracked file))

可以在終端中看到目前在哪一個(gè)分支上(默認(rèn)是master)滔以,一般我們不應(yīng)該在master分支上開(kāi)發(fā)捉腥,應(yīng)該在自己的分支上開(kāi)發(fā),所以需要?jiǎng)?chuàng)建自己的分支你画,兩種方式:

2.1 git checkout -b 分支名抵碟,創(chuàng)建當(dāng)前分支的備份分支桃漾,并切換到該分支;

2.2 git branch 分支名 創(chuàng)建分支

? ? ? git checkout 分支名 切換分支

3.使用studio打開(kāi)該項(xiàng)目拟逮,打開(kāi)后可能會(huì)發(fā)現(xiàn)該項(xiàng)目不能運(yùn)行或者編譯不通過(guò)撬统,這需要你找到其原因,目前我遇到的都是一些gradle版本不符合或者該項(xiàng)目中的引用資源路徑不對(duì)之類的敦迄,稍作修改即可恋追;

4.在studio中修改某個(gè)文件,然后在終端中執(zhí)行g(shù)it status罚屋,這個(gè)時(shí)候你會(huì)發(fā)現(xiàn)在對(duì)應(yīng)的change to update狀態(tài)下表明該文件被修改了(modified)苦囱,但是緩存中還沒(méi)有該文件,目前該文件的修改只限于工作空間(編輯器)沿后,此時(shí)如果要提交該修改沿彭,需要先將該文件add到緩存區(qū),執(zhí)行

git add 文件名

此時(shí)可以再執(zhí)行g(shù)it status 來(lái)查看當(dāng)前本地的狀態(tài)尖滚,你會(huì)發(fā)現(xiàn)在change to commit狀態(tài)下存在該文件了,此時(shí)你可以查看緩存區(qū)的該文件和本地倉(cāng)庫(kù)中該文件的差異:

git difftool --cached 文件名

上述命令表示瞧柔,對(duì)比緩存區(qū)和本地倉(cāng)庫(kù)中該文件的差異漆弄,注意的是,不是對(duì)比工作空間中文件造锅;該命令后面不加文件名時(shí)撼唾,表示對(duì)比所有緩存區(qū)的文件;此時(shí)如果在對(duì)比工具中修改了文件內(nèi)容哥蔚,僅僅是修改了工作空間的文件倒谷,如果要將該修改提交,則還要將該文件add到緩存區(qū);

確定修改好了之后糙箍,就可以提交了:

git commit?

該命令會(huì)將緩存區(qū)中的文件修改提交到本地倉(cāng)庫(kù)渤愁,執(zhí)行該命令后會(huì)讓我們輸入本次提交的相關(guān)說(shuō)明;

這樣我們的修改就被提交到本地倉(cāng)庫(kù)中深夯,可以執(zhí)行g(shù)it log命令來(lái)查看我們的提交記錄抖格,其中commit號(hào)是我們回退時(shí)候需要的參數(shù);

如果此時(shí)我們發(fā)現(xiàn)自己忘記提交一些文件咕晋,又不想再創(chuàng)建一個(gè)commit雹拄,可以撤銷上一次的提交,

git commit -amend

然后再add遺漏的文件到緩存區(qū)掌呜,再提交滓玖;

確認(rèn)所有修改都被提交之后,便可以將本地倉(cāng)庫(kù)的文件提交到遠(yuǎn)程倉(cāng)庫(kù)中质蕉,即:

git push origin 倉(cāng)庫(kù)名字(可以通過(guò)git branch -a來(lái)查看所有分支)

一些命令總結(jié):

checkout:1.切換分支==》git checkout 分支名

? ? ? ? ? ? ? ? ?2.回撤修改;

? ? ? ? ? ? ? ? ? ? git checkout filename 撤銷filename文件在工作空間中的修改,

? ? ? ? ? ? ? ? ? ? git checkout . ? ? ??注意到 checkout 后面有個(gè)”.”今野,就是代表所有文件的意思把所有文件都撤回剛才在工作區(qū)上的改動(dòng)耘沼。

? ? ? ? ? ? ? ? ? ? git checkout cimmit號(hào) filename 撤銷目標(biāo)文件的修改,使文件暫存區(qū)和工作區(qū)都回到某一次提交時(shí)的狀態(tài)顽腾;

reset :撤銷操作,但是不同的參數(shù)會(huì)導(dǎo)致不同的效果,常用如下:

? ? ? ? ? ? ? ? ? ? git reset ?HEAD filename 回退某個(gè)文件到前一次的提交的狀態(tài)棒卷,僅僅是暫存區(qū)的改變,工作空間不會(huì)修改祝钢,其中HEAD可以理解為上一次提交的commit號(hào)比规,filename不加的時(shí)候表示回退所有文件;

? ? ? ? ? ? ? ? ? ? git reset –soft ? ??意味著工作區(qū)不會(huì)收到影響拦英,暫存區(qū)回到了那個(gè)節(jié)點(diǎn)的commit時(shí)的狀態(tài)蜒什。也就是說(shuō)你在提交后所做的修改不會(huì)被沒(méi)收;

? ? ? ? ? ? ? ? ? ?git reset –hard ? ?這個(gè)用法和剛才的類似疤估,就是多了個(gè)–hard灾常,意味著你工作區(qū)的代碼也會(huì)回檔,和暫存區(qū)保持一致铃拇,都回到了那個(gè)節(jié)點(diǎn)的commit時(shí)的狀態(tài)钞瀑。

git學(xué)習(xí)資料:?

git基礎(chǔ)知識(shí)

回退操作相關(guān)

checkout命令

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市慷荔,隨后出現(xiàn)的幾起案子雕什,更是在濱河造成了極大的恐慌,老刑警劉巖显晶,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贷岸,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡磷雇,警方通過(guò)查閱死者的電腦和手機(jī)偿警,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)倦春,“玉大人户敬,你說(shuō)我怎么就攤上這事≌霰荆” “怎么了尿庐?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)呢堰。 經(jīng)常有香客問(wèn)我抄瑟,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任皮假,我火速辦了婚禮鞋拟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惹资。我一直安慰自己贺纲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布褪测。 她就那樣靜靜地躺著猴誊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪侮措。 梳的紋絲不亂的頭發(fā)上懈叹,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音分扎,去河邊找鬼澄成。 笑死,一個(gè)胖子當(dāng)著我的面吹牛畏吓,可吹牛的內(nèi)容都是我干的墨状。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼菲饼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼歉胶!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起巴粪,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎粥谬,沒(méi)想到半個(gè)月后肛根,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漏策,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年派哲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掺喻。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡芭届,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出感耙,到底是詐尸還是另有隱情褂乍,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布即硼,位于F島的核電站逃片,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏只酥。R本人自食惡果不足惜褥实,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一呀狼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧损离,春花似錦哥艇、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至怎棱,卻和暖如春哩俭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拳恋。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工凡资, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谬运。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓隙赁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親梆暖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子伞访,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • git作為時(shí)下最流行的代碼管理工具,Git權(quán)威指南總結(jié)了十條喜歡Git的理由: 異地協(xié)同工作轰驳; 現(xiàn)場(chǎng)版本控制厚掷; 重...
    古斟布衣閱讀 1,824評(píng)論 0 12
  • 2017年計(jì)劃是看五十本書(shū),今天是第一本级解,書(shū)名是《學(xué)會(huì)提問(wèn)》冒黑。今天是第一次分享,書(shū)中觸動(dòng)我最深的是不要抵制和駁倒那...
    甘于寂寞閱讀 138評(píng)論 0 2
  • 川溶晨靄勤哗,慕桂緣楓攀遠(yuǎn)黛抡爹。日綻云開(kāi),鵬舉煙嵐巡北崖芒划。 風(fēng)凌絕頂冬竟,盡掃心塵閑煮茗。友顧寒廬民逼,且枕云天共玉壺泵殴。 (詞林...
    夜雨偶微涼閱讀 345評(píng)論 22 23