支持原創:http://blog.csdn.net/u014079773/article/details/51595127
准備工作:
目的:eclipse使用git提交本地項目,提交至遠程github上
eclipse版本:eclipse4.5 64位
jdk版本:jdk-1.7 64位
項目類型:maven web項目
備注:eclipse高版本自帶git插件,而低版本則需自己安裝git插件,這里使用eclipse高版本,低版本安裝git插件這里不進行介紹。
eclipse使用git提交項目有2種方式:一種是git命令窗口,另一種是eclipse自帶git插件(跟svn插件一樣使用)
一、使用git命令窗口提交項目
1.首先官網下載git並安裝,然后配置用戶信息(任意目錄下右擊“Git Bash Here”打開git命令窗口)
git config --global user.name "you name"
git config --global user.email "you@youdomain.example.com"
2.登錄github官網,注冊個人github賬號,創建SSH Key 用於將本地項目上傳至遠程github上
創建SSH Key:ssh-keygen -t rsa -C "youemail@example.com"
把生成的公鑰復制到github上,具體操作參考:http://blog.csdn.net/u014079773/article/details/49555989 中“六:添加遠程倉庫”
3.創建本地倉庫如“testGit”,然后選中該本地倉庫右擊“Git Bash Here” 執行如下命令:(注意倉庫名稱用英文)
首先在github上創建一個倉庫,倉庫名為“testGit”(遠程倉庫名必須與本地倉庫名一致,否則提交失敗,報倉庫不存在),創建遠程倉庫具體操作參考:
http://blog.csdn.net/u014079773/article/details/49555989 中“六:添加遠程倉庫”
在“testGit”工程上右擊“Git bash Here”輸入如下命令:
git init 初始化倉庫“testGit”即把這個目錄變成Git可以管理的倉庫,在該目錄下會生成一個隱藏文件“.git”
touch .gitignore git提交忽略不必要的文件夾或文件(在本地倉庫中生成一個隱藏文件“.gitignore”,文本編輯器打開設置要忽略的文件或文件夾如maven項目的target文件夾)
git add . 添加所有文件(add與“.”之間有空格,否則不識別的語法,提交所有文件)
git commit -a -m 'version 1.2' 提交所有修改文件
git remote add origin git@github.com:somenone/testGit.git 提交遠程倉庫(用SSH的形式,關聯一個遠程倉庫)
git push -u origin master 推送遠程倉庫
備注:由於遠程庫是空的,我們第一次推送master
分支時,加上了-u
參數,Git不但會把本地的master
分支內容推送的遠程新的master
分支,還會把本地的master
分支和遠程的master
分支關聯起來,在以后的推送或者拉取時就可以簡化命令。
之后執行就是 git push origin master
到此我們本地項目已經提交完成,登錄遠程github查看發現上傳成功。
二、使用eclipse自帶插件提交項目
1.自帶git插件進行配置我們的用戶名和密碼,即是自己github注冊用戶。windows--perferences--Team--Git--Configuration
2.eclipse生成SSH2 key:windows -- perferences--General--Network Commection--SSH2--key management--General RSA Key
然后把生成的SSH Key 注冊到github上,登錄github--settings--add把上訴生成的SSH Key粘貼即可。
備注:該方法就相當於命令行方法,在公司電腦和自己筆記本電腦把生成的SSH Key粘貼即可,可以添加很多個SSH Key
查看生成的秘鑰是否在在默認系統盤(C盤),有些人奇葩會安裝在其他盤。
然后把生成的公鑰粘貼到github上:(該步不能省略,一定要用命令檢查下生成的公鑰是否正常)
若該步沒有操作,執行命令:$ ssh -T git@github.com報這樣的錯誤:
3.本地創建項目如“testGit”和本地git倉庫
打開eclipse,創建項目“testGit”里面隨便寫點什么,然后"File"--"Team"--"Share Project"--"Git"--"next"
如上圖所示到此該項目“testGit”就變成git倉庫,到workspace下打開該項目,發現多了一個隱藏文件“.git”,但該項目處於untracked狀態(文件夾中的符號”?”表示),下面我們需要提交代碼到本地倉庫,如下圖:
首先我們要忽略不必要的文件如maven項目target文件夾
配置.gitignore來排除這個文件夾,打開Navigator窗口,在project根目錄中添加.gitignore文件,將需要排除控制的目錄寫入.gitignore文件中:
這樣git提交就過濾了一些不必要的文件,若是要過濾其他文件夾或文件直接在“.gitignore”中寫,具體寫法參考:
http://blog.csdn.net/u014079773/article/details/51602344
然后提交修改的文件必須先add然后commit故通過Team -> Add to index可以將文件加入git索引,進行版本監控:
若是不想添加到版本庫中則“Remove from Index”該命令前提是為未commit,若是已經commit那么該命令不起作用。添加成功后文件狀態發生變化由之前的“?”變成“*”:
細節:EGIT中只要Commit就可以默認將untracked的文件添加到索引再提交更新,不需要分開操作
最后執行commit:(首次提交后,會自動生成master分支)
在注釋中輸入提交信息:
到此項目“testGit”就本地提交成功。接下來我們把本地項目提交至遠程遠程倉庫github上:
首先在github官網上登錄並創建倉庫“testGit”(該名稱與本地倉庫名稱一致,表示本地倉庫提交到遠程倉庫並與之關聯),創建完畢后執行如下操作:
進行如下設置:
下拉框選擇如下:
然后進入如下截圖操作:注意:“Force Update”若是勾選,表示覆蓋提交
點擊“next”出現如下圖所示:
最后點擊finis如下圖,登錄github查看是否上傳成功。
出現如下截圖表示上傳成功。
補充:
1.如何提交已經修改的項目,已修改的項目文件夾出現“*”號標志,選擇帶“*”號標志的文件右擊“Team”--"commit"
點擊“commit and push”表示提交並推送,即把修改的文件提交至本地,推送到遠程倉庫。
2.如何恢復未提交的修改文件:
3.實際開發中提交項目只需要提交如下三個文件即可:
4.如何用命令查看,修改remote url:
如果你在連接github倉庫的時候,用的https協議的地址,還需要切換為git協議
可以用git remote -v 查看你當前的remote url
$ git remote -v
origin https://github.com/love-somnus/Spring.git (fetch)
origin https://github.com/love-somnus/Spring.git (push)
可以看到是使用https協議進行訪問的。
這時,你可以使用 git remote set-url 來調整你的url。
git remote set-url origin git@github.com:love-somnus/Spring.git
完了之后,你便可以再用 git remote -v 查看一下。至此OK。
5.查看本地SSH Key是否正常:
$ ssh -T git@github.com
# Attempts to ssh to github
出現如下信息表示設置成功:
Hi username! You've successfully authenticated, but GitHub does not # provide shell access.
備注:
1.使用eclipse插件提交項目至遠程必須先本地提交,最后提交至遠程倉庫
2.查看誰提交了代碼,項目右擊“team”--“show history”
3.查看提交記錄:Team--Show in History (命令行為:git log)
4.撤銷恢復修改:Replace With--HEAD Revision (命令行為 git checkout head .)
5.更新項目遠程倉庫:Team-- Pull (命令行:git pull https://github.com/someone/xxx.git)
6.查看哪些文件被修改了:Team--Synchronize Workspace
7.提交項目時注意忽略不必要的文件或文件夾如maven項目下的target文件夾忽略
8.git提供了多重協議用來連接git服務器,其中最常見的就是https和git,git就是可以免用戶名和密碼的,不同的協議,項目連接地址是有區別的,如下
https形式:https://github.com/love-somnus/Spring.git git形式:git@github.com:love-somnus/Spring.git