一.windows下安裝
Windows下要使用很多Linux/Unix的工具時,需要Cygwin這樣的模擬環境,Git也一樣。Cygwin的安裝和配置都比較複雜,就不建議你折騰了。不過,有高人已經把模擬環境和Git都打包好了,名叫msysgit,只需要下載一個單獨的exe安裝程序,其他什麼也不用裝,絕對好用。
msysgit是Windows版的Git,從https://git-for-windows.github.io下載(網速慢的同學請移步國內鏡像),然後按默認選項安裝即可。
安裝完成後,在開始菜單裏找到“Git”->“Git Bash”,蹦出一個類似命令行窗口的東西,就說明Git安裝成功!
二.設置用戶名、email
因爲Git是分佈式版本控制系統,所以,每個機器都必須自報家門:你的名字和Email地址。你也許會擔心,如果有人故意冒充別人怎麼辦?這個不必擔心,首先我們相信大家都是善良無知的羣衆,其次,真的有冒充的也是有辦法可查的。
注意git config命令的–global參數,用了這個參數,表示你這臺機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的用戶名和Email地址。
三.創建倉庫,添加文件
mkdir learngit (創建目錄)
cd learngit
pwd (顯示當前目錄)2.git init (將創建的目錄變爲可以管理的倉庫,在倉庫中多了一個.git文件, ls -ah可以查看)
首先這裏再明確一下,所有的版本控制系統,其實只能跟蹤文本文件的改動,比如TXT文件,網頁,所有的程序代碼等等
圖片、視頻這些二進制文件不能追蹤
使用Windows的童鞋要特別注意:不要使用記事本編輯文本- 編寫一個readme.txt文件 放到倉庫文件夾中
$ git add readme.txt (把文件添加到倉庫)
$ git commit -m “wrote a readme file” (把文件提交到倉庫:-m 後邊的是本次提交 說明)
可多次添加,一次提交
四、修改文件
1修改後的文件也需要添加、提交
2要隨時掌握工作區的狀態,使用git status命令。
3如果git status告訴你有文件被修改過,用git diff可以查看修改內容。- 編寫一個readme.txt文件 放到倉庫文件夾中
五、返回修改過的版本
1、使用 git log 查看版本修改rizhi
2、HEAD所指的爲當前版本
3、$ git reset –hard HEAD^ 退回上一版本
Git的版本回退速度非常快,因爲Git在內部有個指向當前版本的HEAD指針,當你回退版本的時候,Git僅僅是把HEAD指向以前版本。所以你讓HEAD指向哪個版本號,你就把當前版本定位在哪。
1.HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset –hard commit_id。
2.穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本。
3.要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。
六、添加遠程庫
- 在github中Create repository
- 根據提示在本地倉庫下輸入 git remote add origin [email protected]:pittershuai/learngit.git
(將本地倉庫和遠端倉庫關聯起來)添加後,遠程庫的名字就是origin,這是Git默認的叫法,也可以改成別的,但是origin這個名字一看就知道是遠程庫。 - git push -u origin master(把當前分支master推送到遠程。) 由於遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。
- 從現在起,只要本地作了提交,就可以通過命令:$ git push origin master
七、從遠程庫克隆
- 倉庫地址克隆 git clone [email protected]:pittershuai/Java.git
- Git支持多種協議,包括https,但通過ssh支持的原生git協議速度最快。
八、分支
git分支的關鍵是指針的使用
Git鼓勵大量使用分支: 查看分支:git branch 創建分支:git branch 切換分支:git
checkout 創建+切換分支:git checkout -b 合併某分支到當前分支:git merge
刪除分支:git branch -d- 解決衝突
衝突的出現就是在分支合併時信息出現不同,爲保持版本一致必須進行手動合併
九、分支管理策略
在實際開發中,我們應該按照幾個基本原則進行分支管理:
首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;
那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發佈時,再把dev分支合併到master上,在master分支發佈1.0版本;
你和你的小夥伴們每個人都在dev分支上幹活,每個人都有自己的分支,時不時地往dev分支上合併就可以了。
所以,團隊合作的分支看起來就像這樣:
後續內容查看繆雪峯網站