git環境部署代碼和liux常用命令
一、測試環境部署項目常用命令:
1、ssh 賬號名@ip 端口號 #登錄遠程服務器
2、登錄yun賬號: su -yun ccpdo su #切換root權限
3、cd 項目所在路徑 #進入項目部署的路徑
git status #查看git狀態
git branch #查看當前git關聯分支
git branch -a |grep <分支名> #-a顯示所有分支 |grep查找具體分支
git checkout <分支名> #切換到要部署代碼的分支上
git pull #拉下分支代碼,更新部署代碼
git diff master --stat #對比當前切換的分支和master的區別(查看當前分支所含文件)
git diff <文件名> #查看文件更新的內容
git checkout master #檢查master分支是否是最新的 ,如果不是需要拉下代碼 git pull
二、git相關知識詳解:
- Workspace:工作區
- Index / Stage:暫存區
- Repository:倉庫區(或本地倉庫)
- Remote:遠程倉庫
(一)本地操作:
1.其它
git init:初始化本地庫
git status:查看工作區、暫存區的狀態
git add <file name>:將工作區的“新建/修改”添加到暫存區
git rm --cached <file name>:移除暫存區的修改
git commit <file name>:將暫存區的內容提交到本地庫
tip:需要再編輯提交日志,比較麻煩,建議用下面帶參數的提交方法
git commit -m "提交日志" <file name>:文件從暫存區到本地庫
2.日志
git log:查看歷史提交
tip:空格向下翻頁,b向上翻頁,q退出
git log --pretty=oneline:以漂亮的一行顯示,包含全部哈希索引值
git log --oneline:以簡潔的一行顯示,包含簡潔哈希索引值
git reflog:以簡潔的一行顯示,包含簡潔哈希索引值,同時顯示移動到某個歷史版本所需的步數
3.版本控制
git reset --hard 簡潔/完整哈希索引值:回到指定哈希值所對應的版本
git reset --hard HEAD:強制工作區、暫存區、本地庫為當前HEAD指針所在的版本
git reset --hard HEAD^:后退一個版本
tip:一個^表示回退一個版本
git reset --hard HEAD~1:后退一個版本
tip:波浪線~后面的數字表示后退幾個版本
4.比較差異
git diff:比較工作區和暫存區的所有文件差異
git diff <file name>:比較工作區和暫存區的指定文件的差異
git diff HEAD|HEAD^|HEAD~|哈希索引值 <file name>:比較工作區跟本地庫的某個版本的指定文件的差異
5.分支操作
git branch -v:查看所有分支
git branch -d <分支名>:刪除本地分支
git branch <分支名>:新建分支
git checkout <分支名>:切換分支
git merge <被合並分支名>:合並分支
tip:如master分支合並 hot_fix分支,那么當前必須處於master分支上,然后執行 git merge hot_fix 命令
tip2:合並出現沖突
①刪除git自動標記符號,如<<<<<<< HEAD、>>>>>>>等
②修改到滿意后,保存退出
③git add <file name>
④git commit -m "日志信息",此時后面不要帶文件名
(二)本地庫跟遠程庫交互:
git clone <遠程庫地址>:克隆遠程庫
功能:①完整的克隆遠程庫為本地庫,②為本地庫新建origin別名,③初始化本地庫
git remote -v:查看遠程庫地址別名
git remote add <別名> <遠程庫地址>:新建遠程庫地址別名
git remote rm <別名>:刪除本地中遠程庫別名
git push <別名> <分支名>:本地庫某個分支推送到遠程庫,分支必須指定
git pull <別名> <分支名>:把遠程庫的修改拉取到本地
tip:該命令包括git fetch,git merge
git fetch <遠程庫別名> <遠程庫分支名>:抓取遠程庫的指定分支到本地,但沒有合並
git merge <遠程庫別名/遠程庫分支名>:將抓取下來的遠程的分支,跟當前所在分支進行合並
git fork:復制遠程庫
tip:一般是外面團隊的開發人員fork本團隊項目,然后進行開發,之后外面團隊發起pull request,然后本團隊進行審核,如無問題本團隊進行merge(合並)到團隊自己的遠程庫,整個流程就是本團隊跟外面團隊的協同開發流程,Linux的團隊開發成員即為這種工作方式。
三、常用的Linux命令
- cd 路徑 #進入指定目錄
- cd ../目標路徑 #進入當前目錄上一級下的指定目錄
- rm -rf ./* #刪除當前目錄下的所有文件夾和文件
- rm -rf 路徑文件 #刪除指定文件或文件夾
- ll #顯示所有文件信息
- ls -lh #顯示當前目錄下所有文件的包括大小等信息
- du -sh #統計當前目錄所有文件和文件夾的總的大小
- vim 路徑文件 #編輯指定文件 i,o切換為編輯狀態,esc退出編輯狀態,:wq保存退出
- find . -type f -name "store*" #查找當前目錄下文件名含有指定字符串的文件
- find . -type d -name "bj*" #查找當前路徑下目錄名含指定字符串的文件夾
- 查找當前目錄下,包含“Hello”字符串的所有文件:
- grep - rn "hello" ./ #方法一:r 表示遞歸, n 表示查詢結果顯示行號
- find ./ -name "*.*" | xargs grep "Hello" #方法二
- #方法三:如果不知道文件所在的大致目錄,知道文件的類型(例如文本類型 txt),可以在root根目錄 / 下根據特定字符串進行查找:find / -type f -name "*.txt" | xargs grep "Hello"