git篇
git篇
git是一個(gè)開源的分布式版本控制系統(tǒng),可用于高效的管理大小項(xiàng)目
svn是一種集中式的版本控制系統(tǒng)
分布式:每個(gè)節(jié)點(diǎn)關(guān)系平等,到保存完整的代碼,節(jié)點(diǎn)之間相互推送或下載代碼,工作方式多樣
集中式:有明確的中央服務(wù)器統(tǒng)一管理代碼,每個(gè)節(jié)點(diǎn)將代碼上傳中亞服務(wù)器或者從中央服務(wù)器下載。邏輯簡(jiǎn)單,方便權(quán)限管理。
git的基本配置:
配置級(jí)別:
系統(tǒng)中所有的用戶均使用的配置 (系統(tǒng)級(jí)的配置)
命令 : git config --system
當(dāng)前用戶的所有項(xiàng)目均使用的配置(用戶級(jí)的配置)
命令: git config --global
只在當(dāng)前項(xiàng)目中使用的配置
命令: git config (命令要在git項(xiàng)目文件夾中執(zhí)行)
e.g. 配置編譯器
git config core.editor vscode
查看當(dāng)前配置
git config --list
git的基本操作命令
| git init | 初始化一個(gè)倉庫(工作區(qū),暫存區(qū),本地倉庫) |
| git status | 查看工作分支狀態(tài)(查看工作區(qū)和本地倉庫是否同步) |
| git add [file] | 將文件或目錄提交到暫存區(qū),多了文件用空格隔開,*表示當(dāng)前目錄下所有 |
| git rm --cached [file] | 刪除暫存區(qū)的文件記錄 |
| git commit -m “message” | 將暫存區(qū)文件同步到本地倉庫 |
| git log | 查看提交日志 |
| 工作區(qū)操作 | |
| git diff [file] | 查看工作區(qū)文件和本地倉庫的差異 |
| git checkout – [file] | 放棄工作區(qū)文件修改 |
| git checkout [file] | 將本地倉庫的文件恢復(fù)到工作區(qū) |
| git rm [file] | 刪除工作區(qū)文件并提交到暫存記錄 |
| git mv file dir | 移動(dòng)工作區(qū)文件并提交到暫存記錄 |
| 版本控制命令 | |
| git reset --hard HEAD^ | 回到上一個(gè)版本,^ 個(gè)數(shù)表示回到之前幾個(gè)版本 |
| git reset --hard commit_id | 通過commit_id回到指定的版本 |
| git reflog | 查看操作日志(可以查看conmit_id號(hào)) |
| git tag v1.0 -m “message” | 創(chuàng)建標(biāo)簽 |
| git tag | 查看所有標(biāo)簽 |
| git show v1.0 | 查看某個(gè)標(biāo)簽的具體信息 |
| git tag -d v2.0 | 刪除標(biāo)簽 |
| git reset --hard v1.0 | 回到某個(gè)標(biāo)簽的版本 |
| 保存臨時(shí)工作區(qū) | |
| git stash | 創(chuàng)建臨時(shí)工作區(qū),將工作區(qū)修改內(nèi)容暫時(shí)封存,恢復(fù)到最近一個(gè)“干凈”狀態(tài) |
| git stash list | 查看保存的工作區(qū) |
| git stash apply stash@{1} | 應(yīng)用某個(gè)臨時(shí)工作區(qū) |
| git stash drop stash@{0} | 刪除某一個(gè)臨時(shí)工作區(qū) |
| git stash clear | 刪除所有臨時(shí)工作區(qū) |
| 分支管理 | |
| git branch [branch_name] | 創(chuàng)建分支 |
| git branch | 查看當(dāng)前分支 |
| git branch --list | 查看所有的分支 |
| git checkout [branch] | 切換工作分支 |
| git checkout -b [branch_name] | 創(chuàng)建并切換到新的分支 |
| git merge [branch] | 合并分支 |
| git branch -d [branch] | 刪除分支 |
| git branch -D [branch] | 強(qiáng)制刪除未合并分支 |
*當(dāng)工作區(qū)和本地倉庫內(nèi)容一致是git status提示工作區(qū)干凈
*rm mv 的用法和shell命令rm mv相同,操作后直接commit同步到本地倉庫
遠(yuǎn)程倉庫
遠(yuǎn)程倉庫:在遠(yuǎn)程主機(jī)上的倉庫。git時(shí)分布式的,每一臺(tái)主機(jī)上的git結(jié)構(gòu)基本相同,只是把其他主機(jī)上的git倉庫叫做遠(yuǎn)程倉庫
#創(chuàng)建本地遠(yuǎn)程共享倉庫 流程: 1.創(chuàng)建共享倉庫 :1. 創(chuàng)建目錄mkdir gitrepo 2. 設(shè)置倉庫文件夾的屬主chown tarena:tarena gitrepo3. 創(chuàng)建共享倉庫git init --bare project.git4. 設(shè)置git項(xiàng)目文件夾屬主chown -R tarena:tarena project.git 2.添加遠(yuǎn)程倉庫git remote add origin tarena@127.0.0.1:/home/tarena/gitrepo/project.git3.向遠(yuǎn)程主機(jī)推送分支git push -u origin master #第一次推送需要指定遠(yuǎn)程主機(jī)的哪個(gè)分支#如何從遠(yuǎn)程主機(jī)獲取項(xiàng)目 1.創(chuàng)建目錄,假定aidgit clone tarena@127.0.0.1:/home/tarena/gitrepo/project.git獲取后就建立了aid主分支和遠(yuǎn)程主機(jī)主分支的關(guān)聯(lián),下次拉取就直接使用git pull/fetch** git fetch 獲取遠(yuǎn)程分支到本地,但是暫時(shí)不合并總結(jié)
- 上一篇: 我想对读者说的话
- 下一篇: 攻防世界 Reverse进阶区 BABY