Git是目前世界上最先進的分布式版本控制系統,高端大氣上檔次!
1、環境搭建
去git
官網下載安裝包,默認安裝,安裝完后 進入Git-Git Bash
會跳出一個命令窗口,輸入命令
git --version
即可查看安裝情況,如果出現版本號,即代表安裝成功。
ps:Git Bash命令窗口是目錄結構 是linux類型,可以用來ssh遠程機器和進行和操作linux相關的操作,超級實用!!!
裝完后還需要洗后一步設置,在命令行輸入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
因為Git是分布式版本控制系統,所以,每個機器都必須自報家門:你的名字和Email地址。
配置之后在命行輸入下面命令可以查看具體配置情況
git config --list
2、版本庫管理
創建版本庫的步驟
- 選擇一個合適的空目錄,執行命令
git init
,會在你的目錄出現一個隱藏目錄.git
,用來版本管理的,嚴禁修改
- 將文件添加至版本庫,執行命令
git add fileName
- 將文件進行提交,執行命令
git commit -m "提交說明"
實操步驟見下圖
文件狀態
git中使用命令git status
用于查看當前庫的狀態,具體有以下幾種情況:
- 與倉庫完全一致時
- 新建一個文件(hello.text),還沒有添加至版本庫時
。
樣例中新添了一個文件,并沒有用git管理起來.
ps:此時如果需要撤銷修改,可以使用
git checkout -- fileName
- 執行add命令至暫存區之后:
ps:此時如果需要撤銷修改,可以使用
git reset HEAD fileName
把提交暫存區的修改去除,之后再使用git checkout -- fileName
即可撤銷修改。
- 進行commit之后,此時文件已經提交至本地倉庫了,再執行
git status
就第一種情況一樣了。
ps:此時如果需要撤銷修改,可以使用版本回退命令
git reset 版本號
#######版本回退
reset
版本間的回退使用git reset [--soft||--mixed||--hard] 版本號
來操作
--soft //只改變分支的提交
--mixed //改變分支和暫存區,不改變本地工區,默認
--hard //都改變
Git的版本回退速度非常快,因為Git在內部有個指向當前版本的HEAD指針,當你回退版本的時候,Git僅僅是把HEAD指向了你要回退的版本
revert
操作撤銷使用 git revert 版本號
,進行一次性的commit進行覆蓋
版本比較
可以使用git diff
進行版本差異的對比
上圖是所有文件的差異顯示,源文件默認是HEAD版本,目標文件是本地文件,當然命令可以添加版本和指定文件的命令,git diff 版本號||版本號前幾位||HEAD^N(N>=0) 目標文件
,例
git diff f3d3029f9fcc767234d560a2aed1e9298be18952 hello.txt
git diff f3d30 hello.txt
git diff HEAD hello.txt
其中版本號f3d3029f9fcc767234d560a2aed1e9298be18952
是hello.txt
的最新一次提交,上面三個命令結果一致。
#######提交日志
當想查看提交日志時,可以使用git log [--oneline] [filename]
命令,主要有一下集中常見的用法
git log
git log --oneline
git log fileName//過縷與文件相關的提交記錄,也可添加--oneline
git reflog//記錄命令日志,可添加fileName進行過濾
3、遠程倉庫
gitHub
:現在的git的遠程倉庫最火的莫過于gitHub
(最近微軟好像要收購),免費托管,但是如果要創建私有庫是需要收費的。
gitLab
:也是一個免費的托管倉庫,可以免費創建私有庫,一般企業用會自己搭建GitLab的倉庫服務。
使用遠程倉庫有以下兩種場景:
- 先有本地倉庫,需要上傳至遠程倉庫
- 已有遠程倉庫,需要下載至本地倉庫
一般實際項目都是第2種情況,那這里也以第二種情況進行說明
step1: 倉庫。首先你得獲取一個遠程倉庫的地址,例:git@github.com:weaimike/hello-world.git
step2:克隆。使用
git clone url
命令進行倉庫克隆
1527943684(1).png
克隆完成后,進來項目目錄,使用命令
git remote -v
可以查看遠程倉庫信息。
image.pngstep3: 更新。git更新遠程倉庫使用命令
git pull
,會將遠程倉庫的提交拉取至本地 并與本地倉庫進行合并,合并的會有沖突,這個在分支管理中會講解。step4:推送。將本地提交推送至遠程倉庫,使用命令
git push [remote-name] [branch-name]
4、分支管理
分支開發有點類似下面的圖的示意,
git branch 分支名稱 //創建分支
git checkout 分支名稱 //切換分支
git branch //查看當前分支
git branch -d 分支名稱 //刪除分支
git merge --no-ff -m "合并信息" 分支名稱 //將分支名稱 以 --no--ff 模式 合并到當前的分支
git merge 分支名稱 //以fast-forward 模式 合并
5、idea使用git
克隆
上面演示了如何從遠程倉庫 clone 項目。
本地開發
從遠程拉下項目之后,就要進行繁瑣的項目開發,那idea能不能像 svn那樣,一眼就看出 當前文件的狀態呢?答案是可以的,看下圖
咱們用命令git status
來對比下 與idea 顯示的結果是對應得上的,通過idea顯示的顏色,能夠快速的知道當前文件的狀態。
開發完之后先提交至本地倉庫,先add再commit.
idea常見的操作見下:
團隊協作模式
1、需要先用git pull試圖合并;
2、如果合并有沖突,則解決沖突,并在本地提交;
3、沒有沖突或者解決掉沖突后,再用git push origin <branch-name>推送就能成功!