git分布式版本控制系統(tǒng)垢啼,記錄每一次的改動(dòng)
分布式與集中式
集中式:最新版本存在一個(gè)中央服務(wù)器畴嘶,每次工作必須先拉取溶其,寫完再上傳。
缺點(diǎn):安全性低策橘,中央處理器損壞代碼丟失炸渡。工作必須聯(lián)網(wǎng)(代碼在版本庫中)
分布式:每個(gè)人的電腦都有完整的版本庫,有一個(gè)服務(wù)器充當(dāng)中央服務(wù)器便于多份代碼的交換
優(yōu)點(diǎn):安全性高丽已,一份丟失可復(fù)制其他版本庫蚌堵,無需聯(lián)網(wǎng)(代碼在本地版本庫)
Mac OS上安裝git,git安裝三種方式
1沛婴、homebrew安裝:安裝homebrew(https://brew.sh/)
安裝homebrew包管理工具:復(fù)制終端/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝git:brew install git
2吼畏、Xcode安裝git:
直接從AppStore安裝Xcode,Xcode集成了Git嘁灯,不過默認(rèn)沒有安裝泻蚊,你需要運(yùn)行Xcode,選擇菜單“Xcode”->“Preferences”丑婿,在彈出窗口中找到“Downloads”性雄,選擇“Command Line Tools”没卸,點(diǎn)“Install”就可以完成安裝了
或使用命令行:xcode-select --install,彈出對(duì)話框點(diǎn)擊安裝
3秒旋、從官方下載包约计,雙擊安裝
因?yàn)镚it是分布式版本控制系統(tǒng),所以迁筛,每個(gè)機(jī)器都必須自報(bào)家門:你的名字和Email地址煤蚌。git config命令的--global參數(shù),用了這個(gè)參數(shù)瑰煎,表示你這臺(tái)機(jī)器上所有的Git倉庫都會(huì)使用這個(gè)配置铺然,當(dāng)然也可以對(duì)某個(gè)倉庫指定不同的用戶名和Email地址。
為每個(gè)git單獨(dú)設(shè)置用戶名和email酒甸,或者所有g(shù)it用戶名email一致
進(jìn)入.git文件夾
1、為每個(gè)git設(shè)置用戶名email
git config user.name "ming"
git config user.email "abc@qq.com"
查看config文件:cat config 圖1
2赋铝、所有g(shù)it設(shè)置同樣的信息
git config --global user.name "ming"
git config --global user.email "abc@qq.com"
3插勤、存儲(chǔ)git的用戶名密碼
git config credential.helper "store"
執(zhí)行后,config文件中增加字段革骨,圖2
圖1
圖2
創(chuàng)建版本庫
創(chuàng)建空文件夾:mkdir document
進(jìn)入文件夾:cd document
初始化倉庫:git init(文件夾中多了.git目錄)
//查看隱藏目錄:ls -ah(查看隱藏的.git目錄)
添加文件到git:git add “readme.txt”
//常見報(bào)錯(cuò)https://www.liaoxuefeng.com/wiki/896043488029600/896827951938304
//git命令只在git目錄內(nèi)生效农尖,git init除外
提交代碼:git commit -m “new files”
查看目前狀態(tài):
git status
On branch master
nothing to commit, working tree clean
沒有未提交的修改
修改提交:
git add "readme.txt" //會(huì)覆蓋原有代碼,將文件放到暫存區(qū)
git commit -m "modify"http://將文件提交到版本庫良哲,將暫存區(qū)內(nèi)文件一次性提交
版本回退:HEAD為版本指針
git log//查看日志盛卡,都提交過哪些版本
//git log --pretty=oneline 可以看到版本號(hào) 圖3
git reset HEAD^//上一版本
git reset HEAD^^//上兩個(gè)版本,以此類推
前進(jìn)到未來版本
//git relog 記錄每一次命令
git reset --hard 版本號(hào)前幾位(四五六位)
圖3
工作區(qū)筑凫、暫存區(qū)
工作區(qū):本地文件夾
暫存區(qū):使用commit將修改提交到版本控制庫
撤銷修改: 回到最近一次git commit 或git add
git checkout -- readme.txt
一種是readme.txt自修改后還沒有被放到暫存區(qū)滑沧,現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài)
一種是readme.txt已經(jīng)添加到暫存區(qū)后巍实,又作了修改滓技,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)棚潦。
一種是readme.txt已經(jīng)添加到暫存區(qū)后令漂,發(fā)現(xiàn)暫存區(qū)中東西有問題不能提交,使用git reset HEAD <file>將暫存區(qū)內(nèi)容回退到工作區(qū)丸边,再將工作區(qū)修改丟掉git checkout -- readme.txt
刪除文件
rm test.txt//刪除工作區(qū)文件
git commit -m “delete”//提交刪除修改叠必,從版本庫刪除
git 命令:
提交代碼:git commit -m "modify" //-m "" 提交說明
查看git上文件狀態(tài)(添加,修改等):git status
查看與原來git上的文件的差異:git diff “readme.txt”
提交修改代碼(與提交新代碼一樣):git add “readme.txt” git commit -m
更多git實(shí)踐總結(jié)見 git實(shí)踐總結(jié)