Git
什么是Git?
- Git是一款源代碼管理工具(版本控制工具)
- 我們寫的代碼需要使用Git進(jìn)行管理。
- 源代碼有必要管理起嗎?
- 1.0
- 2.0 //
- svn,vss,vcs.... git
- 有必要,因?yàn)槿斯さ娜ヌ幚聿煌陌姹?,做相?yīng)備份會(huì)很麻煩。
- Git是linux之父當(dāng)年為了維護(hù)linux---linus之前也是手動(dòng)維護(hù)合并把文件發(fā)給Linus
- linus自己寫了一個(gè)版本管理的工具(Git)
Git安裝
初始化Git倉(cāng)儲(chǔ)/(倉(cāng)庫(kù))
- 這個(gè)倉(cāng)庫(kù)會(huì)存放,git對(duì)我們項(xiàng)目代碼進(jìn)行備份的文件
- 在項(xiàng)目目錄右鍵打開 git bash
- 命令:
git init
自報(bào)家門
- 就是在git中設(shè)置當(dāng)前使用的用戶是誰(shuí)
- 每一次備份都會(huì)把當(dāng)前備份者的信息存儲(chǔ)起來
- 命令:
- 配置用戶名:
git config --global user.name "xiaoming" - 配置郵箱:
git config --global user.email "xm@sina.com"
- 配置用戶名:
把大象放到冰箱要幾步
- 打開冰箱門
- 放大象
- 關(guān)上冰箱
把代碼存儲(chǔ)到.git倉(cāng)儲(chǔ)中
- 1.把代碼放到倉(cāng)儲(chǔ)的門口
-
git add ./readme.md所指定的文件放到大門口 -
git add ./把所有的修改的文件添加到大門口
-
- 2.把倉(cāng)儲(chǔ)門口的代碼放到里面的房間中去
git commit -m "這是對(duì)這次添加的東西的說明"
可以一次性把我們修改的代碼放到房間里(版本庫(kù))
-
git commit --all -m "一些說明"- --all 表示是把所有修改的文件提交到版本庫(kù)
查看當(dāng)前的狀態(tài)
- 可以用來查看當(dāng)前代碼有沒有被放到倉(cāng)儲(chǔ)中去
- 命令:
git status
git中的忽略文件
- .gitignore,在這個(gè)文件中可以設(shè)置要被忽略的文件或者目錄。
- 被忽略的文件不會(huì)被提交倉(cāng)儲(chǔ)里去.
- 在.gitignore中可以書寫要被忽略的文件的路徑,以/開頭,
一行寫一個(gè)路徑,這些路徑所對(duì)應(yīng)的文件都會(huì)被忽略,
不會(huì)被提交到倉(cāng)儲(chǔ)中- 寫法
-
/.idea會(huì)忽略.idea文件 -
/js會(huì)忽略js目錄里的所有文件 -
/js/*.js會(huì)忽略js目錄下所有js文件
-
- 寫法
查看日志
-
git log查看歷史提交的日志 -
git log --oneline可以看到簡(jiǎn)潔版的日志
回退到指定的版本
-
git reset --hard Head~0- 表示回退到上一次代碼提交時(shí)的狀態(tài)
-
git reset --hard Head~1- 表示回退到上上次代碼提交時(shí)的狀態(tài)
-
git reset --hard [版本號(hào)]- 可以通過版本號(hào)精確的回退到某一次提交時(shí)的狀態(tài)
-
git reflog- 可以看到每一次切換版本的記錄:可以看到所有提交的版本號(hào)
分支
- 默認(rèn)是有一個(gè)主分支master
創(chuàng)建分支
-
git branch dev- 創(chuàng)建了一個(gè)dev分支
- 在剛創(chuàng)建時(shí)dev分支里的東西和master分支里的東西是一樣的
切換分支
-
git checkout dev- 切換到指定的分支,這里的切換到名為dev的分支
git branch可以查看當(dāng)前有哪些分支
- 切換到指定的分支,這里的切換到名為dev的分支
合并分支
-
git merge dev- 合并分支內(nèi)容,把當(dāng)前分支與指定的分支(dev),進(jìn)行合并
- 當(dāng)前分支指的是
git branch命令輸出的前面有*號(hào)的分支
- 合并時(shí)如果有沖突,需要手動(dòng)去處理,處理后還需要再提交一次.
GitHub
- https://github.com
- 不是git,只是一個(gè)網(wǎng)站
- 只不過這個(gè)網(wǎng)站提供了允許別通過git上傳代碼的功能
提交代碼到github(當(dāng)作git服務(wù)器來用)
git push [地址] master
- 示例:
git push https://github.com/huoqishi/test112.git master master - 會(huì)把當(dāng)前分支的內(nèi)容上傳到遠(yuǎn)程的master分支上
git pull [地址] master
- 示例:
git pull https://github.com/huoqishi/test112.git master - 會(huì)把遠(yuǎn)程分支的數(shù)據(jù)得到:(注意本地-要初始一個(gè)倉(cāng)儲(chǔ)!)
git clone [地址]
- 會(huì)得到遠(yuǎn)程倉(cāng)儲(chǔ)相同的數(shù)據(jù),如果多次執(zhí)行會(huì)覆蓋本地內(nèi)容。