Git的使用
關(guān)于版本控制
版本控制是一種記錄一個(gè)或若干文件內(nèi)容變化议蟆,以便將來查閱特定版本修訂的系統(tǒng)闷沥。
- 本地版本控制系統(tǒng)。
- 集中式版本控制系統(tǒng)(
SVN
) - 分布式版本控制系統(tǒng)(
Git
)
Git的優(yōu)勢
Git誕生于2005年咪鲜,Linux開源社區(qū)狐赡。
- 速度快
- 簡單的設(shè)計(jì)
- 允許上千個(gè)并行分支
- 分布式
文件的狀態(tài)
- 已提交(mommitted)該文件已經(jīng)被安全的保存在本地?cái)?shù)據(jù)庫中了撞鹉。
- 已修改(modified)修改了某個(gè)文件疟丙,但是還沒有提交保存。
- 已暫存(staged)把已經(jīng)修改的文件放在下次提交時(shí)要保存的清單中鸟雏。
簡單的使用
注冊github···
略享郊。
一. 起步
初次使用需要設(shè)置姓名和郵箱
git config --global user.name "你的名字"
git config --global user.email xxxxxxxx@xx.com
二. clone一個(gè)項(xiàng)目
git clone git@github.com :xxxxxxxx/xx.git
cd xx
三. 添加文件并提交
touch a.md
//創(chuàng)建文件echo "hello">a.md
//在文件里寫入一個(gè)字符串。git status
//使用git status查看狀態(tài)
-
git add.
//將當(dāng)前文件夾里文件的增加孝鹊,刪除炊琉,修改全都放在暫存區(qū)。
-
git status
//再次查看狀態(tài)
-
git commit -am "add"
//使用git commite提交又活,在“ ”中描述本次操作對文件的變動(dòng)苔咪。
-
git push origin master
//把當(dāng)前本地庫里的改動(dòng)推送到遠(yuǎn)程庫master分支。
四. 修改刪除文件
有人在某處修改你的遠(yuǎn)程倉庫時(shí)柳骄,需要把遠(yuǎn)程倉庫的變動(dòng)合并到本地倉庫团赏,否則將無法提交。
git pull
// 合并遠(yuǎn)程倉庫的變動(dòng)vim a.md
······// 對a.md 文件作出一系列修改git commit -a
git push origin master
//完成修改并提交rm a.md
//刪除a.md文件git add.
git commit -am "delete a.md"
// 提交刪除變動(dòng)git push
//同步到遠(yuǎn)程倉庫耐薯。
Questions:
git clone url
和git pull
有什么區(qū)別舔清。git push origin master
中的origin表示什么。
Answers:
git clone 是從遠(yuǎn)程庫克隆一個(gè)版本庫到本地曲初,是從無到有的過程 体谒;
git pull 是從遠(yuǎn)程庫獲取最新版本并合并到本地庫。是一個(gè)更新的過程臼婆。origin 是默認(rèn)的遠(yuǎn)程版本庫名稱抒痒,你可以在 .git/config 之中進(jìn)行修改,事實(shí)上 git push origin master 的意思是 git push origin master:master (將本地的 master 分支推送至遠(yuǎn)端的 master 分支颁褂,如果沒有就新建一個(gè))故响。
進(jìn)階使用
本地創(chuàng)建一個(gè)git項(xiàng)目推送到遠(yuǎn)程空倉庫
mkdir newProject
//新建一個(gè)文件夾cd newProject
git init
git add .
git commit -am "init"
git remote add origin git@github.com:xxxx/xxx.git
git push origin master
注意 倉庫和文件夾的區(qū)別在于倉庫下面有一個(gè)隱藏的.git 文件夾纷捞,里面有一些信息。
分支操作
有人把 Git 的分支模型稱為“必殺技特性”被去,這使Git脫穎而出主儡。Git的分支可謂是難以置信的輕量級,它的新建操作幾乎可以在瞬間完成惨缆,并且在不同分支間切換起來也差不多一樣快糜值。Git 鼓勵(lì)在工作流程中頻繁使用分支與合并。理解分支的概念并熟練運(yùn)用后坯墨,你才會(huì)意識(shí)到為什么 Git 是一個(gè)如此強(qiáng)大而獨(dú)特的工具寂汇。
git branch dev
//創(chuàng)建本地庫dev分支git checkout dev
//切換到dev分支touch 123.html
git add .
git commit -am "add 123.html"
git push origin dev
//推送到origin地址的dev分支上。
分支合并
git checkout master
//切換到主分支git merge dev
//把dev分支的內(nèi)容合并到當(dāng)前分支master上
分支沖突
當(dāng)自己和別人改變同一個(gè)文件的同一個(gè)地方捣染,在執(zhí)行git pull
的時(shí)候更新本地合并時(shí)會(huì)出現(xiàn)沖突骄瓣。
- 修改沖突的文件。
- 重新提交耍攘。