軟件配置
操作系統: win10 企業版
軟件配置: JDK:1.8.0_241; eclipse:Oxygen.3a Release (4.7.3a);git:version 2.15.0.
一、環境准備
1.安裝eclipse,具體步驟點擊此鏈接
2.注冊一個github賬號
3.eclipse配置git信息
Window-->Preferences-->Team-->Git-->Configurationt>Add Enty...-->第一次配置,彈出框k框填寫兩項值:key:user.name,value:你的名字;key:user.email,value:郵箱賬號(最好與github注冊郵箱一致)-->Apply and close
如果沒有上圖git選,則需要安裝git,步驟如下:
eclipse ->help->install new software -> add -> 彈出框name:git location:http://download.eclipse.org/egit/updates/ -> 下載完成后會提示重啟eclipse
4.配置SSH
第一步:eclipse配置SSH
Window -> preferences ->general ->Network Connection -> SSH
第二步:如上圖操作之后會生成一個id_rsa.pub文件,然后登陸github,點擊setting如下圖配置SSH and GPG keys>>輸入自定義title值,key值輸入id_rsa.pub文件的文件內容
二、新建倉庫
1.瀏覽器打開github網站並登陸,再次點擊New repository,如下圖輸入一下信息,點擊create...綠色按鈕,新建一個倉庫
2.獲取github倉庫地址
具體步驟參照此鏈接
三、創建項目
1.點擊空白處>>New>>Other
2.新建一個python項目
3.輸入工程名稱>>點擊“”Finish”完成項目創建
4.新建一個py文件
四、提交項目到本地倉庫(Git)
第一步:右鍵項目--> Team--> Share Project...
第二步:彈出框操作步驟如下
第三步:右擊項目--> Team--> Commit...
第四步:選擇可提交的內容,點擊Commit按鈕,完成提交本地倉庫操作
五、提交項目到遠程倉庫(Github)
第一步:右鍵項目-->Team-->Remote-->Push...
第二步:輸入github倉庫地址、用戶名、密碼,點擊Next
注意:勾選上圖Store in Secure Store 復選框,可記住Github用戶名及密碼,下次無需再輸入
第三步:選擇master>>點擊Add Spec>>force update打勾>>點擊Finish,完成遠程倉庫提交
完成提交,本地項目與遠程項目圖
六、獲取項目
第一步:右鍵空白處 >>import>>import,搜索框里面輸入git,選擇Projects from Git>>選擇Next
第二步:選擇Clone URL(翻譯過來就是克隆url,就是把遠端github倉庫的項目復制到本地)>>Next
第三步:輸入github倉庫地址,用戶名、密碼>>點擊next
第四步:選擇你下載項目存放位置,選擇你的項目的本地存放目錄,一直點擊next,最后finish
七、問題
7.1 問題:Eclipse里git提交沖突rejected – non-fast-forward
如下圖顯示
原因:
Eclipse里commit代碼,其實只是提交到本地倉庫,需要push才會提交到遠程的git倉庫,這時是一個本地倉庫到遠程倉庫的同步過程。Git是分布式的,每個人在本地倉庫維護本地的自己的那一份代碼,commit時只提交到本地倉庫,不會影響到別人。當你push到遠程倉庫就可能發生沖突了。假如別人在你push前也push了同一個文件,那么問題就來了,沖突了,rejected – non-fast-forward出現了。
解決方法一:
每次本地修改代碼前先從git倉庫pull下想要提交的分支的最新代碼,改完了commit並push到git倉庫。這里有個前提,修改、commit和push期間沒人動你修改的文件。
解決方法二:
期間文件在git倉庫被改了,那么重新從git倉庫獲取最新的分支代碼,然后把自己的修改放上去提交。
解決方法三:
通過merge來解決沖突。當出現rejected – non-fast-forward別慌,這時我們可以識別哪些文件有沖突,一個一個改,改好了再pull下最新代碼,然后提交到遠程倉庫。
下面具體說明下提交操作:
1、單個文件提交:首先跟遠程倉庫做比較,右鍵修改的文件和目錄->Team->Synchronized Workspace->確保沒有沖突后再次右鍵修改的文件和目錄->commit,在Git Staging里選中Unstaged Changes窗口里要提交的文件->Add to Index->在Commit Messge里寫提交說明->Commit and Push->Next,注意這里不要選最下面的Force overwirte branch in remote if exists and have deverged,否則本地倉庫會覆蓋遠程倉庫,造成覆蓋別人代碼的嚴重后果->OK
2、沖突解決:上面在Synchronized Workspace后出現沖突會有鮮艷的紅色箭頭出現,雙擊就可以看到哪個地方沖突了,一般是先把本地的改動保存好,從遠程取下最新內容,再加上本地修改,最后提交。圖示如下:
上面本地文件改動了,遠程文件新增了,所以沖突了,右鍵選中該文件,點擊Merge:
可以看到新怎的那一條自動復制到本地來了,接着右鍵點擊Commit,輸入提交說明,提交到本地倉庫。此時再Pull最新遠程git倉庫里的代碼到本地倉庫(沖突不解決Pull會報錯,Push報rejected – non-fast-forward),然后Push即可:
注意不要點強推,很容易覆蓋代碼