IDEA中g(shù)it的更新、提交纽窟、還原方法以及沖突解決

一肖油、git更新操作

第一步:

在提交項(xiàng)目之前必須先對(duì)項(xiàng)目進(jìn)行更新,此項(xiàng)特別重要臂港,如果不進(jìn)行更新森枪,別人有項(xiàng)目提交到服務(wù)器上,那么你的項(xiàng)目將會(huì)提交不上去审孽,使用git解決沖突會(huì)比較麻煩县袱,即使你解決了沖突,但是有時(shí)候不注意會(huì)沖掉別人寫的代碼瓷胧,不像svn使用那么簡(jiǎn)單显拳,所以提交自己項(xiàng)目前必須進(jìn)行更新(特別重要);如圖1:選擇pull進(jìn)行更新代碼操作搓萧;

1.jpg

第二步:

更新后的結(jié)果如圖2杂数、3;其中圖2:表示從服務(wù)器上更新下來(lái)的代碼瘸洛;圖3:表示服務(wù)器上沒(méi)有需要更新的代碼揍移,當(dāng)服務(wù)器上沒(méi)有需要更新到本地的代碼時(shí),則可以放心的進(jìn)行提交代碼的操作反肋;

2.jpg
3.jpg

第三步:

1.當(dāng)確定第二步操作完之后那伐,此時(shí)可以進(jìn)行提交代碼的操作,圖4中表示中紅色的項(xiàng)目表示新創(chuàng)建的項(xiàng)目{注:如果是藍(lán)色石蔗,表示修改過(guò)的項(xiàng)目}(紅色和藍(lán)色都表示待提交項(xiàng)目)罕邀,如果是紅色的,則選擇圖5:add,如果項(xiàng)目是藍(lán)色养距,則選擇圖5.1 :commit file;

4.jpg
5.jpg
  • 2.當(dāng)add操作完成之后項(xiàng)目顏色會(huì)變成綠色诉探,如圖6,紅色表示為進(jìn)行add操作棍厌;


    6.jpg
  • 3.進(jìn)行commit Directory操作 如圖7:


    7.jpg
  • 4.當(dāng)出現(xiàn)如圖8的窗口時(shí)肾胯,綠色和藍(lán)色表示待提交項(xiàng)目竖席,在這里可以進(jìn)行相應(yīng)的勾選,下面的commit message區(qū)域填寫敬肚,模塊名稱或者提交代碼的相應(yīng)信息毕荐,下面的下拉菜單選擇commit and push,如紅色8區(qū)域;


    8.jpg
  • 5.如圖9:當(dāng)出現(xiàn)下面窗口時(shí)艳馒,選擇紅色區(qū)域9部分的push按鈕憎亚,進(jìn)行提交項(xiàng)目操作,至此項(xiàng)目提交所以操作完成鹰溜,需要等幾秒鐘會(huì)有相應(yīng)提交成功或者是提交失敗的提示虽填,如果提交失敗則表示,你本地項(xiàng)目沒(méi)有進(jìn)行更新曹动,和服務(wù)器上的項(xiàng)目有沖突斋日,需要解決沖突,然后才能提交(注:當(dāng)pull失敗時(shí)墓陈,說(shuō)明服務(wù)器上的代碼和本地代碼有沖突恶守,這時(shí)則需要把本地有沖突的代碼備份,然后還原贡必,再pull兔港,這時(shí)pull成功后,再把自己備份的代碼部分仔拟,拷入相應(yīng)的代碼中衫樊,這時(shí)候再進(jìn)行push就可以了)。

9.jpg

第四步:

還原操作:如圖選擇10區(qū)域按鈕:revert進(jìn)行還原操作利花;

10.jpg

二科侈、Git沖突解決

在idea開發(fā)工具中使用Git時(shí),主要用到的快捷按鈕如下五個(gè):

image

這五個(gè)按鈕的使用說(shuō)明及在idea中如何配置和使用git可參考https://github.com/DayThink/IntelliJ-IDEA-Tutorial/blob/newMaster/vcs-introduce.md

本文主要講解在Idea中利用git遇到的兩種沖突(提交代碼時(shí)發(fā)生沖突和更新代碼時(shí)發(fā)生沖突)以及解決方法炒事,無(wú)論是那種沖突臀栈,只要發(fā)生沖突了,idea都會(huì)彈出一個(gè)圖形化的merge對(duì)話框挠乳,在merge對(duì)話框上引導(dǎo)用戶去解決沖突权薯。

1.提交commit沖突:

image

如上圖所示,當(dāng)提交代碼時(shí)發(fā)生沖突睡扬,此時(shí)操作步驟如下

image
image

在這里我們希望將本地沖突代碼和服務(wù)端的代碼都保留盟蚣,此時(shí)在上圖中點(diǎn)擊中間的兩個(gè)紅色按鈕后即可將本地和服務(wù)端的沖突代碼全部保留,在中間一欄result中科院預(yù)覽到?jīng)_突解決后的代碼情況卖怜,沖突處理完成后如下圖

image

在上圖merge對(duì)話框中點(diǎn)擊右下角的apply時(shí)刁俭,一般會(huì)在idea的右下角出現(xiàn)如下的Push rejected提示對(duì)話框

image

上圖對(duì)話框提示我們,在push的時(shí)候發(fā)生了失敗韧涨,此時(shí)要注意牍戚,將本地代碼更新提交到服務(wù)端,需要經(jīng)歷兩個(gè)步驟:commit和push虑粥,commit相當(dāng)于提交到了本地庫(kù)如孝,而push則是將本地庫(kù)提交更新到服務(wù)端。根據(jù)上圖提示push rejected娩贷,我們可以發(fā)現(xiàn)沖突已經(jīng)在本地庫(kù)commit時(shí)解決了第晰,我們只需push一次即可,因此后續(xù)操作只需要push一次即可彬祖,如下:

在沖突的文件上茁瘦,右鍵

image

push完成后即可將本地庫(kù)的文件提交到服務(wù)端。

2.更新update沖突

image

如上圖所示储笑,點(diǎn)擊更新按鈕時(shí)發(fā)現(xiàn)沖突甜熔,提示用戶如下所示的merge頁(yè)面上進(jìn)行沖突的處理,比如此處我們希望將本地修改和遠(yuǎn)端服務(wù)器的修改均保留突倍,因此按照如下圖所示的紅色1和2操作腔稀,合并到中間的result一欄中。

image

沖突解決后羽历,如下所示:

image

至此焊虏,更新沖突就已解決完成。

三秕磷、Git命令的全家福手冊(cè)

image

三诵闭、idea中查看遠(yuǎn)程Git倉(cāng)庫(kù)的地址

有時(shí)我們需要將本地的代碼與遠(yuǎn)程Git倉(cāng)庫(kù)脫離綁定關(guān)系或重新綁定到另一個(gè)Git倉(cāng)庫(kù)上,此時(shí)在idea中查看或刪除本地代碼對(duì)應(yīng)Git倉(cāng)庫(kù)的方法:

image

如果本地的倉(cāng)庫(kù)綁定了兩個(gè)遠(yuǎn)端的Git倉(cāng)庫(kù)澎嚣,那么在彈出的Remotes對(duì)話框中會(huì)有兩條遠(yuǎn)端Git倉(cāng)庫(kù)的記錄疏尿。

四、idea中查看本地Git倉(cāng)庫(kù)的地址

查看與遠(yuǎn)程Git倉(cāng)庫(kù)綁定的本地目錄币叹,有時(shí)候本地目錄和子目錄都會(huì)綁定到一個(gè)遠(yuǎn)端的Git倉(cāng)庫(kù)润歉。

image

五、用Git命令行(不在idea操作)上傳本地倉(cāng)庫(kù)到Git遠(yuǎn)程倉(cāng)庫(kù)

如果是新項(xiàng)目颈抚,創(chuàng)建 git 倉(cāng)庫(kù):

[java] view plaincopy

<embed id="ZeroClipboardMovie_1" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. mkdir SpringBootInAction
  2. cd SpringBootInAction
  3. git init
  4. 將當(dāng)前目錄下的所有文件添加到git倉(cāng)庫(kù)

  5. git add .
  6. git commit -m "first commit"
  7. 首先要建好一個(gè)遠(yuǎn)端倉(cāng)庫(kù)(URL),如https://xxx/SpringBootInAction.git

  8. git remote add origin https://xxx/SpringBootInAction.git
  9. git push -u -f origin master

如果是已有項(xiàng)目

[java] view plaincopy

<embed id="ZeroClipboardMovie_2" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_2" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. cd existing_git_repo
  2. git remote add origin https://xxx/SpringBootInAction.git
  3. git push -u origin maste

六踩衩、Git版本回退

首先,根據(jù)git提交的歷史記錄中確定回退的版本

image

將上述拷貝的Revision Number記錄下來(lái)贩汉,如:4b91ea12de20cdf97eccb6bc9125bbc2fef79b17

備注:后面兩步在idea中好似不能圖形化操作界面驱富,只能用命令行了

其次,恢復(fù)到指定的commit hash
git reset --hard resetVersionHash

eg:git reset --hard 4b91ea12de20cdf97eccb6bc9125bbc2fef79b17

最后匹舞,把當(dāng)前分支強(qiáng)制提交到遠(yuǎn)程
git push -f origin currentBranch

eg: push -f origin master

以上三步操作后褐鸥,就將本地和git遠(yuǎn)端的代碼從2017-8-12 18:45回退到了2017-8-12 17:01。

七赐稽、分支操作

7.1.新建分支

1.首先在本地新建一個(gè)分支叫榕,如dev;


image

2.執(zhí)行g(shù)it push origin dev:dev;或git push origin dev;
上面命令表示浑侥,將本地的dev分支推送到origin主機(jī)的dev分支,如果后者不存在晰绎,則會(huì)被新建寓落。
git push命令用于將本地分支的更新,推送到遠(yuǎn)程主機(jī)荞下,它的格式如下:
$ git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
如果省略遠(yuǎn)程分支名伶选,則表示將本地分支推送與之存在”追蹤關(guān)系”的遠(yuǎn)程分支(通常兩者同名),如果該遠(yuǎn)程分支不存在尖昏,則會(huì)被新建仰税。
$ git push origin master
上面命令表示,將本地的master分支推送到origin主機(jī)的master分支抽诉,如果后者不存在陨簇,則會(huì)被新建。
如果省略本地分支名掸鹅,則表示刪除指定的遠(yuǎn)程分支塞帐,因?yàn)檫@等同于推送一個(gè)空的本地分支到遠(yuǎn)程分支。
$ git push origin :master

等同于

$ git push origin --delete master
上面命令表示刪除origin主機(jī)的master分支巍沙。
如果當(dāng)前分支與遠(yuǎn)程分支之間存在追蹤關(guān)系葵姥,則本地分支和遠(yuǎn)程分支都可以省略。
$ git push origin 上面命令表示句携,將當(dāng)前分支推送到origin主機(jī)的對(duì)應(yīng)分支榔幸。 如果當(dāng)前分支只有一個(gè)追蹤分支,那么主機(jī)名都可以省略矮嫉。 $ git push 最后需要注意與git pull的區(qū)別削咆,從遠(yuǎn)程分支名拉到(合并)本地分支名上: $ git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>

7.2.本地與origin分支的對(duì)應(yīng)設(shè)置

查看本地分支與遠(yuǎn)端origin的分支對(duì)應(yīng)情況 $ git remote show origin設(shè)置本地分支與遠(yuǎn)端分支的對(duì)應(yīng)關(guān)系,如:將本地dev分支與遠(yuǎn)端的dev分支進(jìn)行綁定 git branch --set-upstream dev origin/dev

7.3分支合并

如下所示蠢笋,將feature分支合并到dev分支拨齐,之后將合并后的dev分支push一次到origin即可。

image

7.4.遠(yuǎn)端origin分支查看及操作

[java] view plaincopy

<embed id="ZeroClipboardMovie_3" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_3" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=3&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. git remote -v
  2. git remote add origin_didi git@git.xiaojukeji.com:sec/ews-parent.git
  3. git remote -v
  4. git remote --help
  5. git remote remove origin
  6. git remote -v
  7. git remote rename origin_didi origin
  8. git remote -v
  9. git push origin master

參考文章地址:

IDEA中Git的更新昨寞、提交瞻惋、還原方法

Idea中Git的使用和兩種類型的沖突解決

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市援岩,隨后出現(xiàn)的幾起案子歼狼,更是在濱河造成了極大的恐慌,老刑警劉巖享怀,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件羽峰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)梅屉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門值纱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人履植,你說(shuō)我怎么就攤上這事计雌。” “怎么了玫霎?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)妈橄。 經(jīng)常有香客問(wèn)我庶近,道長(zhǎng),這世上最難降的妖魔是什么眷蚓? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任鼻种,我火速辦了婚禮,結(jié)果婚禮上沙热,老公的妹妹穿的比我還像新娘叉钥。我一直安慰自己,他們只是感情好篙贸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布投队。 她就那樣靜靜地躺著,像睡著了一般爵川。 火紅的嫁衣襯著肌膚如雪敷鸦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天寝贡,我揣著相機(jī)與錄音扒披,去河邊找鬼。 笑死圃泡,一個(gè)胖子當(dāng)著我的面吹牛碟案,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颇蜡,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼价说,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了澡匪?” 一聲冷哼從身側(cè)響起熔任,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎唁情,沒(méi)想到半個(gè)月后疑苔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡甸鸟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年惦费,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了兵迅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡薪贫,死狀恐怖恍箭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瞧省,我是刑警寧澤扯夭,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站鞍匾,受9級(jí)特大地震影響交洗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜橡淑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一构拳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧梁棠,春花似錦置森、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至濒蒋,卻和暖如春盐碱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背沪伙。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工瓮顽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人围橡。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓暖混,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親翁授。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拣播,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,661評(píng)論 4 54
  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照收擦,而是把代碼倉(cāng)庫(kù)完整的鏡像下來(lái)贮配。這樣一來(lái),任何一處協(xié)同...
    __silhouette閱讀 15,880評(píng)論 5 147
  • Git常用語(yǔ)法 [TOC] Git簡(jiǎn)介 描述 ? Git(讀音為/g?t/塞赂。)是一個(gè)開源的分布式版本控制系統(tǒng)泪勒,...
    君惜丶閱讀 3,511評(píng)論 0 13
  • 人性本質(zhì)是主動(dòng)而非被動(dòng);不僅能消極選擇反應(yīng);更能主動(dòng)創(chuàng)造有利環(huán)境圆存。 采取主動(dòng)并不表示要強(qiáng)求叼旋;惹人厭或具侵略性;只是...
    zhoujia閱讀 442評(píng)論 0 0
  • 彩茹寶貝閱讀 264評(píng)論 0 0