書看了一段時間,是時候開始維護自己的個人資料了。正所謂工欲善其事必先利其器,開發先從環境搭建開始。而環境搭建先從自己的GitHub賬號搞起。
首先,任何Git初學者應該先看一下廖雪峰老師的教程,這點非常重要!!!
1.先去官網下載一個Git for Windows的安裝包,安裝完成。
2.開始菜單打開Git Base,設置一下你的用戶名和email
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
3.創建你的ssh秘鑰,成功之后在我的系統用戶文件夾下出現.ssh文件夾,里面有兩個文件
$ ssh-keygen -t rsa -C "youremail@example.com"
現在從你的GitHub賬號登陸后右上角圖標點擊后的settings進入用戶設置->SSH and GPG keys->New SSH key。title隨便填,下面的把剛才生成的id_rsa.pub用記事本打開把內容貼進去,提交。完成之后:
4.創建一個與GitHub關聯的代碼倉庫。這里我要在D:/workspace下創建一個叫webdemo的工程,在git base中輸入
cd D:/ cd workspace
然后在GitHub中創建一個也叫webdemo的倉庫,記得把這里√上,這樣會初始化一個README.md
現在本地倉庫克隆GitHub上的遠程倉庫,第一次要驗證RSA認證,輸入yes,然后本地出現webdemo文件夾里面有README.md文件。
$ git clone git@github.com:GrayWind33/webdemo.git
5.嘗試使用git push提交你的修改
現在我在文件夾下添加一個test.txt,然后在git base中輸入
$ git add -A
$ git commit -m 'add test.txt'
$ git push origin master
第一行添加文件,第二行是添加修改描述,第三行上傳文件至遠程倉庫。
這里是直接上傳文件到遠程倉庫的master分支,必須是ssh key在賬戶設置中的本地倉庫才能上傳否則是沒有權限的。
可以看到GitHub的代碼倉庫已經多了一個文件了。
6.創建新的分支與合並
這里的提交是直接把代碼上傳覆蓋了主分支,隨之而來的問題是,GitHub只起到了保存代碼的作用,沒有起到管理的作用。現實狀態下我可能需要暫時提交未全部完成的代碼,或者我不確定這次的開發部分是否正確,要是這部分直接合並上去,我的主分支就不能正常運行了,更加不便於版本管理。以工作中的開發來說,我需要保證主分支上是可以生產發布的正式版本,同時我應該有開發版本,ST測試版本等多個版本。這些不同的版本可以認為就是分支。當我確認當前的工程足以交付之后,我再把最新的分支合並至主分支進行發布。另一點來說,如果我想要發起或參與一個多人項目,顯然我不能把master的權限給所有人,僅有管理員可以直接管理主分支才是正確的。
現在我創建一個新的分支dev,並切換到該分支上。通過git branch可以查看所有分支,通過git checkout 分支名可以切換到該分支上。
$ git checkout -b dev
現在作為測試,我把test.txt給刪除掉,然后提交修改至dev分支
$ git add -A $ git commit -m 'add new branch,and delete test.txt' $ git push origin dev
現在看GitHub上出現了一個新的分支
嘗試切換到dev分支,發現test.txt沒有了而master分支仍然存在。
現在從dev分支上發起一個new pull request,輸入些說明后,點擊create pull request。
現在管理員也就是我的賬號可以看到pull request,我選擇合並之后master分支上的test.txt文件就被刪除了,兩個分支合並完成。當然,我發現這次開發部分問題太大要從頭來過,我自然是不會合並,從主分支新建一個分支從新開發再提交。
7.已有工程關聯遠程倉庫
已一個Java工程來說,通常的順序是先建立Java工程,再上傳到GitHub。反過來通常是不行的,因為eclipse的初始化工程會報錯。那么,現在我已經建立完webdemo這個Java工程,然后也在GitHub建立了相應的repository。按照以下步驟進行關聯:
$ git remote add origin git@github.com:GrayWind33/webdemo.git
$ git pull origin master
現在就可以像之前一樣進行pull和push操作了
8.添加.gitignore文件
對於一個J2EE工程來說,我們最關心的是java源碼、xml文件等,對於編譯產生的.class文件、target目錄下文件可以通過自動構建生成,為了避免編譯環境不同造成的問題以及減少代碼傳輸量,我們需要設置某些類型的文件不傳輸到GitHub上。
$ touch .gitignore
此時目錄下產生.gitignore文件,編輯它,參考配置如下:
# Lines that start with '#' are comments.
# IntelliJ IDEA Project files
.idea
*.iml
*.ipr
*.iws
out
# Eclipse Project files
.classpath
.project
.settings/
bin/
gen/
target/
local.properties
.DS_Store
Thumbs.db
*.bak
*.tem
*.temp
#.swp
*.*~
~*.*
總結一下,我們現在學習了如何從頭開始安裝並搭建一個Git倉庫,以及如何新建分支、提交修改、發起合並請求、合並代碼。其余版本回退,沖突解決等一些問題下次有機會再補充。現在,可以開啟新的代碼之旅了!