前面的文章說到了怎麼講本地的項目代碼託管到git託管服務中,本文未來說一下平常的開發中對git的使用來進行開發。linux
(上次才說了要縮短更新時間,可是實在抱歉,中間出了一些事情,耽擱了一段時間)。git
要達到前一篇博客說明的條件,也就是代碼已經託管到git中了,而且本地的環境那些也是對的。本次演示使用上一篇博客使用的那個工程。web
以前只說了本地代碼提交推送到遠端,有時候遠端有更新的提交須要同步到本地來,接下來就演示一下怎麼操做。windows
爲了演示這種狀況,我會在web上進行一次修改,模擬出有更新的提交,而後在本地的STS中進行查看與同步。網絡
點擊「編輯」進行編輯,而後作出一些修改,提交。分佈式
修改事後的文件內容:
工具
在同步以前,先在本地STS的倉庫管理中對應的倉庫上面查看歷史,看看同步以前的樣子,右鍵倉庫記錄->"show in"->"history":fetch
從提交時間上能夠看到,剛纔的那次提交併不在列表中,網站
這也是符合git是分佈式版本管理的設定的,接下來咱們查看遠端的代碼倉庫狀況。右鍵倉庫記錄->"fetch from upstream",等到網絡傳輸,而後會有提示說遠端是否有改動。spa
可是這個時候在「history」視圖是看不到的,由於尚未拉取下來,可是在倉庫記錄的條目上會有一個向下的箭頭,表示須要進行拉取以保持同步。
咱們在倉庫上右鍵->「pull」拉取遠端上的改動
拉取事後會有提示框說明本次拉取的結果,而後在「history」視圖中也會看到記錄。
剛纔的演示中是本地沒有修改與同步得來的修改衝突的,要是本地有一個修改是與遠端修改衝突了的呢?這種狀況常常出現,因此有必要說明一下處理方法。
仍是那樣,咱們在web上作一次提交,使得文件成爲這樣:
而後,咱們在本地的STS中進行修改,使得文件成爲這樣,:
並提交可是不推送
在fetch以後會看到倉庫記錄條目上有一個向上和一個向下的箭頭,表示須要推送也須要拉取,這個時候直接推送是不行的,須要先拉取,咱們使用先前的方法進行拉取:
而後就會獲得這樣的提示:
文件中標註了衝突的具體狀況,文件視圖中代表了哪些文件有衝突,倉庫視圖中對應的記錄標註該倉庫有衝突。
這個時候你推送是不行的,會提示你須要解決衝突。接下來咱們就解決衝突,而後推送。
首先將文件內容進行修改,根據實際的狀況修改成這個文件原本的內容,具體怎麼改得看具體狀況。
"<<<<<<< HEAD"以及後面的"=========="之間的內容是本地的"HEAD"指向的版本,後面的是遠端與之衝突部分的版本。
我這裏就直接保留兩個版本,將兩行都留下來。
這裏補充一下,推薦一款軟件-------"Meld",是一個很是好用的文件對比工具,同時提供版本控制軟件的對比公能,可以找出哪些地方修改了、衝突等,自由軟件(GNU)、跨平臺,官方網站,使用linux的時候可使用它來進行衝突解決,windows版本的不是很好用。
使用「版本控制」功能,加載咱們須要處理的git倉庫;而後設置顯示「修改」和「衝突」,不顯示「未修改」的,查看出現衝突的文件;而後在視圖中就能夠看到是怎麼個衝突法了,並且還能夠直接標記爲「已解決衝突」。
修改文件以後,保存,這個時候須要作一些操做,而後才能提交,不然是不成功的。
在工程視圖中文件上右鍵->"team"->"add to index":
而後你就會發現,原先標記的衝突都不見了:
這個時候就能夠愉快的提交啦,不過這個時候的提交註釋信息已經有一部分填寫好了:
直接提交、推送,而後在遠端和本地就都是同樣的啦。
好了,本文就先說到這裏,下一文將說一下git的使用管理,例如分支、標籤、分支合併等。
enjoy!!!