為了告別手動方式管理linux**,並且符合開源和免費,linus花了兩周時間自己用 c 寫了乙個分布式版本控制系統,這就是git。
git迅速成為最流行的分布式版本控制系統,尤其是 2008 年 github **上線了,它為開源專案 免費提供git儲存 ,無數開源專案開始遷移至github,包括jquery,php,ruby等等。
windows安裝過程中記得選擇在cmd下使用linux命令拷貝對應指令碼到終端下安裝homebrew 然後在終端執行brew install git命令安裝git
$ git config --global user.name "你的github使用者名稱"
$ git config --global user.email "你的github郵箱"
不配置使用者名稱和郵箱的話無法提交,因為git不知道你是誰檢視配置
$ git config --global user.name
$ git config --global user.email
檢視所有配置
$git config --list
通過ls -al 命令檢視當前目錄下的所有檔案git的工作流
4.1 工作區
通過git add 新增到暫存區
$ git add ./-a/檔名
當前檔案在命令列或終端裡沒有加入到暫存區是紅色,加入後是綠色 可以通過$ git status
命令檢視;這裡說幾個常用的linux命令:
$ touch 檔名 //建立檔案
$ echo 內容 >> 1.txt //乙個大於號清空 建立 並寫入 兩個大於號追加
$ cat 檔名 //檢視檔案
$ vi 檔名 //修改檔案 i鍵進入編輯狀態 esc退出 :wq儲存並退出 :q!強制退出
4.2 暫存區
特點:過渡的作用,避免誤操作,保護工作區和歷史區,分支處理;
通過git commit新增到歷史區
$ git commit -m '注釋內容'
4.3 歷史區
歷史區的內容只要電腦不**、不手動刪除.git檔案,內容永遠不會丟失
檢視歷史狀態及提交版本號:
$ git log / $ git log --oneline //在命令末尾新增--oneline顯示記錄為一行
一步提交到歷史區:
$ git commit -a -m'注釋內容' //如果當前檔案是首次提交則不支援此命令,需要逐步提交
有的時候我們希望提交時合併到上一次的提交:$ git commit --amend
在歷史區中查詢關鍵字:
$ git log --grep/--author=提交者名字
5.1 工作區和暫存區$ git diff
5.2 暫存區和歷史區$ git diff --cached
5.3 工作區和歷史區$ git diff 分支的名字
6.1 撤銷回暫存區中新加的內容(git add的內容)$ git reset head 檔名
6.2 撤回檔案
先從暫存區撤銷,暫存區無內容,從歷史區撤銷
$ git checkout 檔名
7.1 刪除暫存區和工作區
刪除暫存區中的內容,並且保證工作區中的內容已經不存在
$ git rm 檔名 //若本地檔案存在則不能刪除,需要通過-f引數刪除
7.2 僅刪除暫存區$ git rm --cached 檔名
8.1 版本回退(歷史區→工作區)$ git reset --hard 版本號
$ git reset --hard head~3 // head^去上一級
8.2 檢視操作歷史$ git log //檢視當前版本之前的內容
$ git reflog //檢視所有操作歷史
主要是寫**時,不會影響主**
9.1 建立分支
$ git branch 分支名字
9.2 檢視分支$ git branch
9.3 進入到分支(切換分支)$ git checkout 分支名
9.4 刪除分支$ git branch -d 分支名
9.5 建立並切入分支$ git checkout -b dev //建立並切入到dev分支上
9.6 合併分支$ git merge 被合併的分支名
每個人都會擁有一條分支,開發自己的**,自己的**開發完成後提交到自己的歷史區,主分支來進行合併分支 ,注意區分主分支9.7 合併分支時產生衝突的原因
兩個人同時改變了同乙個檔案。git不知道誰是對的,要讓自己裁決,裁決好後再次提交。只能手動合併。
10.1 關聯遠端倉庫
$ git remote add origin(位址名) 遠端倉庫位址
10.2 移除關聯的遠端倉庫$ git remote rm origin(位址名)
10.3 檢視關聯的遠端倉庫資訊
檢視倉庫名字
$ git remote
檢視倉庫位址
$ git remote -v
10.4 推送到遠端倉庫
要保證即將被推送到遠端的內容已經新增到歷史區,即已經執行過$ git add .
&&git commit -m""
,否則無法推送到遠端倉庫
$ git push origin master //可以選擇加不加-u(upstream)引數 首次推送如果加-u則以後每次拉取和推送直接執行git pull/git push即可
如果本地和線上版本不一致,則需先進行拉取,如果拉取後有衝突,需要手動解決衝突,然後再推送強制覆蓋遠端倉庫內容:
$ git push origin master -f
(謹慎使用此命令…後果很嚴重,***…) Linux 目錄與常用linux目錄操作命令
一 linux 的檔案系統 linux 中一切皆檔案,無論何種格式,都是檔案。windows中,系統存放在不同的驅動器碟符上,有c盤 d盤等。而在linux中,檔案系統包含排列在儲存裝置上 磁碟 其他區塊儲存裝置 它是乙個樹形的結構。在系統的這顆樹中,樹根叫做 也就是root,樹根伸展出來的目錄有很...
asterisk與freepbx常用的命令
asterisk常用命令 通過asterisk r連線我們的asterisk.在cli中常用的命令 sip show peers 顯示所有的sip peers 包括 friends sip show users 顯示所有的sip users 包括 friends sip show registry ...
Linux的chattr與lsattr命令詳解
ps 有時候你發現用root許可權都不能修改某個檔案,大部分原因是曾經用chattr命令鎖定該檔案了。chattr命令的作用很大,其中一些功能是由linux核心版本來支援的,不過現在生產絕大部分跑的linux系統都是2.6以上核心了。通過chattr命令修改屬性能夠提高系統的安全性,但是它並不適合所...