1.IDEA提交項目至git
注:保證已安裝Git分布式管理系統,沒有自行百度安裝git
1)在IDEA中配置Git與GitHub
a)Git:
File-->Settings --> Version Control -->Git- -> Path to Git executable:git.exe(定位到自己之前安裝的git安裝路徑)
(自行百度安裝git)),其他配置選項默認即可 --> 點擊Test測試,成功后確認
b)GitHub:
ps:外網為Github,碼雲,內網使用Gitlab,大同小異,內網無需配置GitHub,跳過此步驟b,內網第一次提交項目至Gitlab,會提示輸入Gitlab帳號,密碼,根據提示輸入即可。
Host填寫:github.com
Auth Type選擇:Password
然后填寫自己之前注冊的github帳號與密碼 Test成功后 Apply 然后OK 如:
2)建立本地項目的Git倉庫
打開打算提交到Git的項目
在IDEA頂部的菜單欄中找到VCS
VCS --> Import into Version Control --> Create Git Repository --> 選擇要存放的路徑(一般直接存放在該項目下的路徑,方便后續管理和查找) --> 點擊OK
3)建立遠程Git倉庫
在github建立一個倉庫:Start a project-->輸入 Repository name-->Create repository
matlab:New Project
找到你建立的倉庫,復制HTTPS或者SSH ,若Git地址采用SSH方式,則需要配置SSH
樣例:
HTTPS傳輸協議URL:https://github.com/mlh666/spring-boot.git
SSH傳輸協議URL: git@github.com:mlh666/spring-boot.git
注:若懶人一枚,懶得配置SSH KEY,也可在IDEA只使用https傳輸協議,則無需配置SSH,可直接進行下一步
4)提交項目至遠程倉庫
若不配置SSH Key,在IDEA使用SSH傳輸協議時,會報無權限問題。
配置SSH Key的好處:使用命令操作私有項目時,不需要輸入帳號密碼,https需要輸入帳號密碼
如
$ git clone git@gitee.com:mlh666/spring-boot-demo.git
按enter鍵
正克隆到 'spring-boot-demo'... ...
處理 delta 中: 100% (536/536), done.
$ git clone https://gitee.com/mlh666/Spring_boot_learning.git
正克隆到 'Spring_boot_learning'...
Username for 'https://gitee.com': mlh666(輸入自己帳號)
Password for 'https://mlh666@gitee.com': (輸入密碼)
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
配置SSH密鑰對樣例:
打開終端:
$ cd ~./ssh
$ ssh-keygen -t rsa -C "your_email@youremail.com"(指定自己的郵箱)
例如:
$ ssh -keygen -t rsa -C "mlh666@foxmail.com"
輸入后出現
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mlh/.ssh/id_rsa):
直接按enter
出現以下信息,即提示輸入密碼,可設可不設,看自己
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
密碼輸入后出現
Your identification has been saved in /home/mlh/.ssh/id_rsa.
Your public key has been saved in /home/mlh/.ssh/id_rsa.pub.
The key fingerprint is:***********
到此則生成密鑰對成功
$ ls
ls后發現.ssh下 有id_rsa id_rsa.pub 文件。后綴為.pub為公鑰文件
id_rsa id_rsa.pub known_hosts
打開公鑰文件,復制公鑰:$ cat id_rsa.pub
添加公鑰到遠程Git倉庫:
登陸github帳戶-->點擊頭像-->選擇下拉菜單 Settings -> 左欄點擊 SSH and GPG keys -> 點擊 New SSH key;
在“Key”文本域內粘貼公鑰內容。 title域,隨意自定義名字即可;
點擊 Add key。
嘗試是否可用SSH,
git clone git clone git@gitee.com:mlh666/spring-boot-demo.git
若報錯:
sign_and_send_pubkey: signing failed: agent refused operation
Permission denied (publickey).
fatal: Could not read from remote repository.
解決方法:執行命令:$ ssh-add
顯示如下即成功:
4)提交項目至遠程倉庫
VCS-->Git->Add
然后
方式一:VCS-->Git-->Commit Directory-->在Commit Message 填寫修改的信息-->commit and push
方式二: VCS-->Commit Changes(提交修改)-->在Commit Message 填寫修改的信息-->commit and push
第一次提交托管,Push之前需要指定遠程倉庫的URL
出現Push Commits框,點擊Define remote ,提示輸入URL(粘貼之前自己建立的遠程倉庫的地址)
若彈出密碼框,輸入github密碼,若無 直接push
后續提交:
VCS-->Git->Add
VCS-->Commit Changes
或者VCS-->Git-->Push
ps:每次修改項目,都要記得先Add一遍,再Commit
ps:最好在自己遠程倉庫建立分支branch,如一個項目至少應該有兩個分支,一個為master(默認),正式可投入生產環境使用的版本,不隨意更改;一個為開發dev,供開發測試,
養成良好習慣,在開發過程中優化,修改等,都應該在開發分支下進行,
多人開發更應該建立開發分支,確認測試成功無誤后,不再隨意更改后可push到master分支供生產環境使用,以妨成員錯誤操作master,影響版本使用。
idea中加入Git版本控制時 各文件顏色代表的意思:
綠色:已經加入版本控制暫未提交;
紅色:未加入版本控制;
藍色:加入版本控制,已提交,有改動;
白色:加入版本控制,已提交,無改動;
灰色:版本控制已忽略文件。
2.idea獲取git/github上的項目
獲取別人的項目
先點擊右上角Fork:即建立一個新分支,復制一個副本到自己的Git倉庫里,然后再Clone到本地機器上。若不Fork,直接Clone,則是克隆到自己的本地機器上,連接的遠程倉庫還是別人的,
自己不是原作者,無法進行開發修改。只有Fork時,就把別人的項目克隆到自己的Git遠程倉庫上,然后再Clone到本地,此時本地連接的是自己的遠程倉庫,
這樣自己就有權限更新了。如下:點擊Fork
如若獲取自己項目可跳過上面Fork步驟直接開始下面的Clone步驟:
在想要獲取的github項目上點擊Clone or download 復制URL 如下:
github:
碼雲:
然后
第一種方式:
在頂部菜單欄找到VCS
VCS-->Checkout from Version Control-->github/git
粘貼url,點擊Test,若成功,點擊clone。如下:
點擊yes:
選擇Import project from external model 選擇maven,點擊next:
在Search for projects recursively 前面打對勾,然后next,最后finish(一定要打,避免有些項目沒有總的pom文件)
第二種方式:
File-->new-->Project from Version Control-->git/github(不推薦使用,無法識別項目架構,如項目modual一多,無法識別modual,modual全變成包)
Git Repository URL(遠程倉庫git的地址) :粘貼剛才copy的URL,然后自定義項目本地存放路徑 點擊Test ,成功后 點擊Clone
Fork:創建新分支,復制源項目到自己的Github上,若后續源項目更新,自己fork的項目不會跟着更新。需通過其他反式同步。
一般瀏覽者發現對有些項目有興趣,項目中存在bug或可再優化,想幫原作者完善項目。則會使用fork項目,對此項目修改完善后。發起merge(合並)請求。等待原作者響應即可。
Star:關注他人的更新,類似於點贊,表示喜歡此項目,支持項目,點擊Github個人頭像,可看到下拉菜單your stars選項,點擊此項,即可查看star的所有項目
Watch:通知提醒,默認 no wacthing,對於自己特別有興趣,且不定期更新的項目可選擇wacthing,表示以后會關注此項目更新狀態,一旦有任何改動,則會在個人通知中心,郵箱不斷收到通知郵件。所以請考慮后再選擇,若隨意選擇wacthing項目,項目一多,對於不斷收到的通知會超煩的。