0.幾個基本概念
本地倉庫: 本機上某個存放代碼的倉庫。
遠程倉庫: 碼雲服務器上的代碼倉庫。
重要提醒: 當我們在本地操作(新增、刪除、修改)文件、目錄時,並將其提交(commit),就是提交到了本地倉庫。注意:所有的改動只是放到了本地倉庫,並沒有上傳到服務器的遠程倉庫。
怎么將本地倉庫與遠程倉庫關聯起來呢?
需先將本地倉庫與遠程倉庫關聯起來,就可將本地倉庫中的對代碼的改動上傳到(push)遠程倉庫,也可從遠程倉庫將對代碼的代碼改動下載(pull)下來。
實驗室電腦與碼雲服務器的關系:
- 為了將實驗室的對代碼的改動
push
到碼雲服務器上,需將實驗室電腦的某個目錄建立成本地倉庫,然后關聯碼雲服務器上的遠程倉庫。就可將代碼文件加入(add
然后commit
)本地倉庫,然后再將本地倉庫的代碼改動push
到碼雲上面遠程倉庫。 - 回到宿舍,我們可將碼雲上的遠程倉庫克隆(clone)到你的電腦上的本地倉庫,即在碼雲的遠程倉庫與你電腦上的本地倉庫建立了關聯,然后就可愉快地同步(上傳、下載)我們的文件啦。
1.在碼雲上申請賬號並建立項目
git.oschina.net
新建項目
輸入項目名,選擇正確的項目語言
可以看到新建的項目中有一個默認的README.md文件。
選擇HTTPS,點擊復制獲得遠程項目倉庫地址,如https://git.oschina.net/zhrb/JavaLearn.git
這時候就成功的建立了一個遠程倉庫。
2.在本機安裝Git
到Git官網https://www.git-scm.com/ 下載Git客戶端
安裝過程中幾個選項勾選
Use Git from the Windows Command Prompt
Checkout as-is, commit as-is
Use OpenSSH
3.在本機克隆項目遠程倉庫
3.1 配置git
git config --global user.name "你的名字"
git config --global user.email "你的Email"
名字會出現在你的代碼提交記錄中。Email應與你在碼雲上注冊的Email一致。
3.2 Clone項目
所謂的Clone,就是將遠程倉庫中的內容下載到本地倉庫。
建立目錄,如c:\temp\git
,進入項目目錄,然后執行git clone https://git.oschina.net/zhrb/JavaLearn.git
可以看到JavaLearn目錄被下載下來。注意:這時候c:\temp\git
實際上就是本地倉庫
這時候就成功地將本地倉庫與碼雲遠程倉庫關聯起來。然后就可在本地倉庫與遠程倉庫之間進行同步。
3.3 編寫代碼並提交到本地倉庫
進入JavaLearn目錄,然后創建chpt01目錄,md chpt01
。
在chpt01目錄中新建HelloWorld.java
使用下面兩條命令將所有改動(新建的目錄、新建的HelloWorld.java)添加到本地倉庫中。
git add -A
,跟蹤文件、目錄的所有變化(創建、刪除、修改),將所有相關文件放在暫存區。git 2.0版本git add .
也和git add -A
一樣可以跟蹤文件刪除。
git commit -m "這是一段注釋"
,將暫存區中的所有提交到倉庫中,並寫上一段注釋。
說明:
- 使用
git add 你的文件名
,可以更精細的選擇要跟蹤的文件。 - git只能跟蹤文件,而不能跟蹤目錄。比如,你新建或者刪除一個空目錄,git是無法跟蹤到這種變化。
其他命令:
git log
,查看提交記錄。其中commit 504d11....f365e
是提交的id。
下面的add: HelloWorld.java
代表這次提交所進行的操作。
git log
使用說明:空格鍵、PageUp、PageDown翻頁,q退出。
git log --pretty=oneline
:一行顯示,只顯示哈希值和提交說明。
如何給文件改名或者移動文件
新版的Git能監控到文件改名和移動。改名或移動后,直接add后再進行commit即可。
git status顯示中文亂碼:
git config core.quotepath false
建議:提交時不要使用中文。
3.4 將本地倉庫的內容提交到遠程倉庫
經過前面幾步,你新建的目錄與文件僅存在於本地倉庫。使用下面指令,可將本地倉庫內容推送到遠程倉庫。
git push origin master
默認情況下,origin
指向的就是你本地的倉庫托管在遠程倉庫的版本。
master
,本地倉庫的master分支,也就是主分支。
第一次push的時候可能需要輸入用戶名密碼,請輸入你在碼雲上注冊的郵箱和密碼。
這時你使用瀏覽器打開碼雲相關項目頁面,會發現你新添加的目錄和文件已經上傳到服務器端。
3.5 將遠程倉庫最新的內容抓取到本地
回到你的宿舍,如果你的宿舍還沒有與遠程倉庫關聯,請clone下來(參考步驟3.2)
如果你曾經關聯過,比如關聯后的本地倉庫在電腦中的d:\temp\dorm\JavaLearn
。
后來在實驗室,你還往倉庫中添加了Test.java。並使用git push origin master
將Test.java上傳到服務器上,
你在宿舍怎么下載這個Test.java呢?
可以使用git pull
或者git pull origin master
。如圖,可以看到Test.java已經被下載到本地。
可能存在的問題:pull時如果從服務器上下載下來Test.java文件和你本機上的Test.java有沖突,可能導致合並不成功。
可解決沖突后,重新合並。詳見參考資料
總結:
1.初次克隆倉庫,從未配置過的Git
git config --global user.name "你的名字"
git config --global user.email "你在git遠程倉庫注冊的Email"
git clone 你的git遠程倉庫的地址
//然后在相應目錄進行了修改、添加、刪除等操作
git add .
git commit -m "這是一段用於說明提交的信息"
git push origin master
2. 曾經克隆過倉庫,也配置過Git,現在需要把遠程倉庫的內容抓到本地
git pull
//然后在相應目錄進行了修改、添加、刪除等操作
git add .
git commit -m "這是一段用於說明提交的信息"
git push origin master
其他參考資料
Git與碼雲(Git@OSC)入門-如何在實驗室和宿舍同步你的代碼(2)
使用Eclipse Egit(圖形界面)與碼雲管理你的代碼
Git自助手冊