使用Eclipse-Maven-git做Java開發(14)--開發中對git的使用

jopen 10年前發布 | 13K 次閱讀 Git 版本控制系統

        前面的文章說到了怎么講本地的項目代碼托管到git托管服務中,本文將來說一下日常的開發中對git的使用來進行開發。

        (上次才說了要縮短更新時間,但是實在抱歉,中間出了一些事情,耽擱了一段時間)。

0、要求

        要達到前一篇博客說明的條件,也就是代碼已經托管到git中了,并且本地的環境那些也是對的。本次演示使用上一篇博客使用的那個工程。

1、遠端代碼到本地代碼的同步

        之前只說了本地代碼提交推送到遠端,有時候遠端有更新的提交需要同步到本地來,接下來就演示一下怎么操作。

        為了演示這種情況,我會在web上進行一次修改,模擬出有更新的提交,然后在本地的STS中進行查看與同步。

1.1 在web進行修改


        點擊“編輯”進行編輯,然后做出一些修改,提交。

        修改過后的文件內容:

1.2 本地STS中查看修改

        在同步之前,先在本地STS的倉庫管理中對應的倉庫上面查看歷史,看看同步之前的樣子,右鍵倉庫記錄->"show in"->"history":

        從提交時間上可以看到,剛才的那次提交并不在列表中,

        這也是符合git是分布式版本管理的設定的,接下來我們查看遠端的代碼倉庫情況。右鍵倉庫記錄->"fetch from upstream",等到網絡傳輸,然后會有提示說遠端是否有改動。

        但是這個時候在“history”視圖是看不到的,因為還沒有拉取下來,但是在倉庫記錄的條目上會有一個向下的箭頭,表示需要進行拉取以保持同步。

1.3 拉取改動

        我們在倉庫上右鍵->“pull”拉取遠端上的改動

        拉取過后會有提示框說明本次拉取的結果,然后在“history”視圖中也會看到記錄。

2 沖突的出現與沖突的解決

        剛才的演示中是本地沒有修改與同步得來的修改沖突的,要是本地有一個修改是與遠端修改沖突了的呢?這種情況經常出現,所以有必要說明一下處理方法。

2.1 制造沖突

        還是那樣,我們在web上做一次提交,使得文件成為這樣:

        然后,我們在本地的STS中進行修改,使得文件成為這樣,:

        并提交但是不推送

2.2 拉取遠端變更,得到沖突

        在fetch之后會看到倉庫記錄條目上有一個向上和一個向下的箭頭,表示需要推送也需要拉取,這個時候直接推送是不行的,需要先拉取,我們使用先前的方法進行拉取:

        然后就會得到這樣的提示:

        文件中標注了沖突的具體情況,文件視圖中表明了哪些文件有沖突,倉庫視圖中對應的記錄標注該倉庫有沖突。

2.3 解決沖突

        這個時候你推送是不行的,會提示你需要解決沖突。接下來我們就解決沖突,然后推送。

        首先將文件內容進行修改,根據實際的情況修改為這個文件本來的內容,具體怎么改得看具體情況。

        "<<<<<<< HEAD"以及后面的"=========="之間的內容是本地的"HEAD"指向的版本,后面的是遠端與之沖突部分的版本。

        我這里就直接保留兩個版本,將兩行都留下來。

        這里補充一下,推薦一款軟件-------"Meld",是一個非常好用的文件對比工具,同時提供版本控制軟件的對比公能,能夠找出哪些地方修改了、沖突等,自由軟件(GNU)、跨平臺,官方網站,使用linux的時候可以使用它來進行沖突解決,windows版本的不是很好用。

        使用“版本控制”功能,加載我們需要處理的git倉庫;然后設置顯示“修改”和“沖突”,不顯示“未修改”的,查看出現沖突的文件;然后在視圖中就可以看到是怎么個沖突法了,而且還可以直接標記為“已解決沖突”。

        修改文件之后,保存,這個時候需要做一些操作,然后才能提交,否則是不成功的。

        在工程視圖中文件上右鍵->"team"->"add to index":

        然后你就會發現,原先標記的沖突都不見了:

        這個時候就可以愉快的提交啦,不過這個時候的提交注釋信息已經有一部分填寫好了:

        直接提交、推送,然后在遠端和本地就都是一樣的啦。

3 暫停一下

        好了,本文就先說到這里,下一文將說一下git的使用管理,例如分支、標簽、分支合并等。

        enjoy!!!


來自: http://my.oschina.net/songxinqiang/blog/603790

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!