如何在windows下使用git及github倉庫管理專案
目前windows版本的git有幾種實現,但我們選擇msysgit發行版,這是目前做得相容性最好的。
使用預設配置安裝Git。這個不用多說,一路Next就可以,如果對各種選項不熟悉,建議使用預設配置,沒問題的。
第二,建立github賬號
什麼是Git和GitHub
Git —The stupid content tracker, 傻瓜內容跟蹤器,是一個由Linux核心開發者Linus為了更好地管理Linux核心開發而創立的分散式版本控制軟體。
GitHub — 學生做版本控制最討厭的就是找伺服器,配置太麻煩了。GitHub這個網站為每個使用者提供伺服器託管其Git程式碼庫,免費空間為300M
為什麼不選CVS或SVN
- Git提交/克隆/pull/push的速度更快
- Git的絕大多數操作都可以在本地完成,不需要頻繁連線伺服器。
註冊GitHub賬號
- GitHub網址在 這裡
- 點選上方導航條的Signup and Pricing即可進入註冊介面, 選擇註冊免費賬戶
- GitHub選擇的預設通訊方式是SSH,所以要先在Git裡面生成SHH Key,開啟Git Bash在其中輸入如下命令:
ssh-keygen -t rsa -C "[email protected]"
之後會讓你選擇是否對存放SSH Key的資料夾進行加密,一般都不需要的。一路回車,就OK了。
- 在c盤,當前使用者資料夾下,有個.ssh 資料夾,在裡邊 找到 id_rsa.pub檔案,用記事本開啟,複製其中的全部內容。
- 登陸你的GitHub賬戶,依次點選Account Settings > SSH Public Keys > Add another public key,把id_rsa.pub中的內容拷貝進去 。
- 至此,基本的設定已經完成了。
測試你的Git
- 經過上述配置,你的Gti應該可以通過SSH連線GitHub伺服器了,讓我們來測試下,輸入如下命令:
- 會給你這樣的提示:
- 輸入yes,會顯示:
- 到這裡,說明你的SSH運轉良好。
如果提示你的金鑰不正確,那麼你需要重新確認上一步的操作是否完整無誤。
第三,建立本地git倉庫
首先,git要求使用者必須提供自己的身份標識,為此我們需要在git bash中執行以下命令:
git config --global user.name 'aa.Tessst'
git config --global user.email [email protected]
其次,選擇git倉庫目錄
我們假設將git倉庫目錄放在D盤的OPENSource目錄下,可以通過在git bash中執行以下命令完成:
cd /d
mkdir OPENSource
注:git bash支援大多linux bash終端命令,你可以自己嘗試更多終端操作。
最後,建立專案並初始化git倉庫
我們的第一個專案是一個使用Python語言將XML檔案轉換成Python字典,通過執行以下命令完成此步驟:
mkdir Python-XML2Dict
cd Python-XML2Dict
git init
執行此操作後,git將在Python-XML2Dict目錄下建立一個隱藏目錄(.git),這個目錄就是git用來管理軟體版本的倉庫。
第四,使用git管理專案
此步 和 在linux 上 使用 git 的 方法一樣,具體參考 我的 其他 博文!
第五,將專案提交到github管理,gitpush
如果 第二步 測試無錯,那麼 經過 以下兩步 就可以將本地的檔案提交到github倉庫了。
1、登入GitHub後,你可以在右上邊靠中那裡找到一個按鈕“creat a New Repository”,點選過後,填入專案名稱、說明等 過後就可以建立了,然後會出現一個提示頁面,記下類似 [email protected]:XXX/XXX.git 的地址,這個就是你這個專案的地址了。
2、
1 git remote add origin [email protected]:XXX/XXX.git 2 git push -u origin master //把本地 master 分支 推送到 伺服器的master分支上,如果伺服器沒有此分支,就 新建 此分支。這也是 在伺服器上新建分支的一種方法
這個[email protected]:XXX/XXX.git
就是上面建立專案是生成的地址。現在開啟你的專案網址,你就可以發現你的程式碼已經展示出來了。
第六,直接 用 git pull 將專案 從 github 上 同步 下來
有兩種方法:
1、當git clone之後,直接git pull它會自動匹配一個正確的remote url
是因為在config檔案中配置了以下內容:
1 [branch "master"]2 remote = origin3 merge = refs/heads/master表明:
1.git處於master這個branch下時,預設的remote就是origin;
2.當在master這個brach下,使用指定remote和merge的git pull時,使用預設的remote和merge。
2、但是對於自己建的專案,並沒有這塊內容,需要自己配置。
1 git remote add -f origin [email protected]:/srv/git/project.git //若是 執行過 第五步,那麼 這一句 就 不用了2 git config branch.master.remote origin //這一步 設定: 把 master 分支上 的 預設伺服器地址 設為 origin指向的地址 3 git config branch.master.merge refs/heads/master //這一步 設定:如果當前分支是 master 分支,那麼 git pull之後,直接 把 “從 origin 下載 下來的 code合併到 master分支上“或者加上--global選項,對於全部專案都使用該配置。建議:用第二種 方法,因為 如果 是 git clone的 專案,當 執行 git push 時,因為 在 git config裡 url 是 只讀方式
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git://github.com/xxx/xxx.git
//[email protected]:XXX/XXX.git 這才是 讀寫方式
---------------------------------
如果提交了敏感資訊,比如程式碼中設定的自己的密碼什麼的忘刪除就上傳上去了怎麼辦?
有兩個方法:
1、重新修改原生代碼,然後提交到伺服器(覆蓋),
2、直接登入 github 刪除之前的專案。刪除專案需要在GitHub網站上右上方找到admin按鈕,進去後右邊最下面有個刪除的按鈕,這樣就可以刪除了。
--------------------------
若是一個專案就託管在 GitHub 上。你可以把它的 URL 分享給每位對此專案感興趣的人。本例的 URL 是 http://github.com/testinguser/iphone_project
。而在專案頁面的摘要部分,你會發現有兩個 Git URL 地址,見 右圖:
![](http://git-scm.com/figures/18333fig0408-tn.png)
右圖的 摘要中的公共 URL 和私有 URL
Public Clone URL 是一個公開的,只讀的 Git URL,任何人都可以通過它克隆該專案。可以隨意散播這個 URL,比如釋出到個人網站之類的地方等等。
Your Clone URL 是一個基於 SSH 協議的可讀可寫 URL,只有使用與上傳的 SSH 公鑰對應的金鑰來連線時,才能通過它進行讀寫操作。其他使用者訪問該專案頁面時只能看到之前那個公共的 URL,看不到這個私有的 URL。