Git作為一個(gè)版本控制工具的后起之秀,目前已經(jīng)呈現(xiàn)替代SVN的趨勢挖帘,如果你現(xiàn)在還在使用SVN等版本控制工具啼止,那說明你已經(jīng)OUT了!Git 是Linux內(nèi)核的發(fā)明人 大名鼎鼎的Linus Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個(gè)開源碼版本控制工具砂沛。
1.Git基本概念介紹
1.1.本地庫和遠(yuǎn)程庫
本地庫(如用戶電腦端的Git庫)中有本地分支(dev/master等),遠(yuǎn)程庫(Git服務(wù)器)中有遠(yuǎn)程分支(dev/master等)
1.2.commit
將代碼修改提交到本地庫
1.3.push
將本地代碼的分支更新到遠(yuǎn)程庫的代碼分支
1.4.commit and push
先執(zhí)行commit曙求,然后執(zhí)行push碍庵,即將代碼修改提交到本地庫,同時(shí) 將本地代碼的分支更新到遠(yuǎn)程庫的代碼分支
1.5. pull
將遠(yuǎn)程代碼庫的分支更新到本地分支
1.6. merge
將本地代碼的某個(gè)分支合并到本地的另一個(gè)代碼分支悟狱,如將dev合并到master分支
1.7 origin
origin可以理解為git遠(yuǎn)程倉庫的名字静浴,比如master指本地master分支,origin/master指遠(yuǎn)程倉庫的master的分支挤渐。
2.常用Git操作指令:
2.1.下載git服務(wù)器上的代碼項(xiàng)目
假如項(xiàng)目地址為 http://git.mydemo.cn/demo.git.
git clone http://git.mydemo.cn/demo.git
2.2.pull dev分支
git pull origin dev:dev
2.3.根據(jù)當(dāng)前dev分支生成新的的代碼dev2分支
git checkout -b dev2 // (假如目前所在分支為dev)
2.4.合并dev到dev2分支
git merge dev2 //(假如目前所在分支為dev)
2.5.commit本地dev分支至遠(yuǎn)程dev分支
git push origin dev:dev
2.6.合并dev分支到master分支并push遠(yuǎn)程master苹享,合并之前必須保證代碼質(zhì)量
git merge dev //(假如目前所在分支為dev)
git push origin master:master
2.7.將遠(yuǎn)程dev分支拉取到本地dev分支
git fetch origin dev:dev
2.8.從dev分支切換dev2分支或dev-tag-01
git checkout dev2 //(假如目前所在分支為dev)
git checkout dev-tag-01
2.9. 顯示當(dāng)前git庫的狀態(tài)
git status
2.10.查看本地全部分支,目前所在分支前有*標(biāo)記
git branch
2.11.查看本地全部遠(yuǎn)程分支浴麻,目前所在分支前有*標(biāo)記
git branch -a
2.12 查看項(xiàng)目所在的遠(yuǎn)程地址
git remote -v
2.13 將本地項(xiàng)目綁定到遠(yuǎn)程git倉庫
- git init // 首次添加時(shí)富稻,若沒有執(zhí)行g(shù)it init 會(huì)提示fatal: Not a git repository (or any of the parent directories): .git
- git remote add origin http://git.xxx.cn/learn.git
2.14 代碼回退到某個(gè)commit版本
git reset --hard 1242354365ab23434546 回退到版本為1242354365ab23434546的歷史版本
2.15 git pull和git fetch區(qū)別
git fetch:是將遠(yuǎn)程主機(jī)的最新內(nèi)容拉到本地,用戶在檢查了以后決定是否合并到工作本機(jī)分支中白胀。
git pull: 則是將遠(yuǎn)程主機(jī)的最新內(nèi)容拉下來后直接合并椭赋,即:git pull = git fetch + git merge,這樣可能會(huì)產(chǎn)生沖突认境,需要手動(dòng)解決。
2.16 基于tag創(chuàng)建分支
git branch branch_name tag_v1.0.0
3.最佳實(shí)踐
git pull origin dev // 拉取遠(yuǎn)程分支
git add * // 提交哪些文件挟鸠,*表示提交所有修改的文件
git commit -m "bugfix-nullException" // 提交代碼到本地倉庫
git push origin dev // 提交代碼到遠(yuǎn)程origin倉庫