Git是什么
Git是一款免費、開源的分布式版本控制系統(tǒng)氓轰,可以有效婚夫、高速的處理從很小到非常大的項目版本管理,功能強大署鸡。
與常用的版本控制工具CVS案糙、Subversion等不同的是它采用了分布式版本庫的方式,不必服務器端軟件支持靴庆,使源代碼的發(fā)布和交流極其方便时捌。Git的速度很快,最為出色的是它的合并跟蹤的能力炉抒。
Git當初是Linus Torvalds為了幫助管理Linux內(nèi)核源碼替換BitKeeper 而開發(fā)的一個開放源碼的版本控制軟件奢讨。
Git安裝與配置
Git的官網(wǎng)網(wǎng)址:
在各個平臺上都有對應版本。安裝過程比較簡單端礼,過程略禽笑。
安裝完成后,可以配置客戶端的用戶和郵箱蛤奥,方便clone,pull和push佳镜。
$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"
--global:表示全局配置,會在用戶的HOME目錄下的.gitconfig中加入配置凡桥。Windows下的home目錄一般為:C:\Users\用戶名.gitconfig蟀伸。
例如:
$ git config --global user.name "Misout"
$ git config --global user.email "292814282@qq.com"
當然Git還有很多配置,例如配置用戶和密碼缅刽,避免每次都需要輸入用戶名和密碼啊掏。在此不是重點,略衰猛。
Git常用命令
● Workspace:工作區(qū)
● Index / Stage:暫存區(qū)
● Repository:倉庫區(qū)(或本地倉庫)
● Remote:遠程倉庫
【分支】
1.創(chuàng)建本地分支:git checkout -b dev
2.創(chuàng)建遠程分支(分兩步):
$ git checkout -b dev
$ git push origin dev:dev
3.checkout遠程分支:git checkout -b dev origin/dev
4.列出所有遠程分支:git branch -r
5.列出所有本地及遠程分支:git branch -a
如果此命令看不到所有遠程分支迟蜜,執(zhí)行git fetch命令進行更新
6.本地分支與遠程分支建立關聯(lián):git branch --set-upstream-to=origin/<branch> master
7.查看本地分支與遠程分支是否有關聯(lián):git branch -vv
8.丟棄本地已改動但未提交的文件:git checkout -- pom.xml
9.刪除遠程分支:git push origin :分支名(origin后面有空格)
刪除本地和遠程分支完整語法:git push origin [本地分支名]:[遠程分支名],如果本地分支名為空格啡省,表示只刪除遠程分支
10.刪除本地分支:git branch -d 本地分支名
11.暫存工作:git stash
12.查看暫存的列表:git stash list
13.合并分支:git merge dev娜睛,將dev分支的代碼合并到當前所在分支
14.取消合并:git merge --abort,如果執(zhí)行合并命令后有沖突卦睹,又不想快速解決畦戒,想撤銷此次合并就可以用這個命令了。
15.獲取遠程最新分支列表:git fetch -p
【克隆】
1.從遠程代碼庫克隆结序,并指定目錄名:git clone git://github.com/schacon/grit.git mygrit
默認克隆的是master分支
2.克隆指定分支:git clone -b master git://github.com/schacon/grit.git
【合并】
1.快速合并分支:git merge master
2.將分支A上的某個提交合并到分支B上(在B分支上執(zhí)行):git cherry-pick [A分支上commitId]障斋,注意cherry-pick中間"-"前沒有空格
3.合并代碼還未提交,可以放棄合并:git merge --abort
【提交】
1.提交到本地:git commit -m "提交備注信息"
2.推送到遠程相同分支名的分支上:git push origin
【歷史記錄】
1.查看歷史記錄:git log
這種形式的命令如果log很多,會占滿屏幕垃环,并不會退出邀层。在英文輸入法下按Q退出。
2.查看歷史記錄(每條一行顯示):git log --pretty=oneline
【撤銷修改】
1.撤銷已commit但未push的提交
分兩步:先找到回退版本的ID晴裹,再執(zhí)行reset命令
git log --pretty=oneline
git reset --hard [想回到的提交commit_id]
2.撤銷Unstaging和已staging的文件:git checkout -- filename
3.撤銷未提交的修改:git checkout -- fileName
4.從已add的暫存列表中撤銷到未add前的狀態(tài):git reset HEAD fileName被济。不加文件名參數(shù)代表將所有文件還原到add前的狀態(tài)。