GIT -- bash命令與github之間的操作合集
縱使圖形化工具遍地,我對bash的愛意也是無法停止的,因為生命的意義在於裝13。
git config --global user.name ""
git config --global user.email "" //設定使用者名稱與郵箱
git config --global color.ui true //命令會顯示不同的顏色
GitHub 介面(對不起英語不好):
code:程式碼
issues:問題
pull request:拉取請求
projects:專案
wiki:
insights:
settings:設定
commit:提交
branch:分支
releases:版本
contributor:貢獻者
---------------------本地倉庫操作--------------------------------------------------------
mkdir 資料夾名 //建立空目錄(資料夾)
mkdir -p test/a //-p代表沒有test便建立test(沒有-p 同時 沒有test報錯)
pwd //顯示當前目錄路徑
rm -rf //強制刪除(不要問我為什麼跑路)
git init //將當前目錄變為倉庫
ls -ah //檢視當前目錄下所有列表(包括隱藏)
git add 檔名 //追蹤檔案 git add .(追蹤全部 點前面有個空格)
git commit -m '**' //提交到倉庫(如果忘了-m進入另外一個編輯器寫入提交資訊之後 開啟大寫--按下esc--2下Z 退出)
git status //檢視倉庫檔案狀態
git diff 檔名 //檢視檔案修改內容
git diff HEAD -- 檔名 //檢視工作區和版本庫的檔案區別
cat 檔名 //檢視檔案內容
git status -s /-short //更為緊湊的格式輸出:
MM-工作區被修改並且提交到暫存區後又在工作區被修改-暫存區與工作區都有該檔案修改記錄
M-檔案被修改但是沒有放入暫存區
M-檔案被修改並且放入暫存區
A-新新增到暫存區中的檔案
??-新新增的未跟蹤的檔案
git log //歷史紀錄 --pretty=oneline
git log --graph //可以看到分支合併圖
git reset --hard HEAD^ //退回上個版本(上上個版本 HEAD^^../..上100個版本HEAD~100)
git reflog //記錄每一次命令(退回老版本想返回新版本--用來檢視新版本commit id)
git reset --hard 1094a(版本commit id)
git checkout -- 檔名 //丟棄工作區的修改
一種是自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態
總之,就是讓這個檔案回到最近一次git commit或git add時的狀態
(git checkout其實是用版本庫裡的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”。)
git reset HEAD 檔名 //把暫存區的修改撤銷,返回工作區
---------------------遠端倉庫操作--------------------------------------------------------
遠端伺服器 ==比如 github (需配置ssh公鑰)(Windows下開啟Git Bash,建立SSH Key:)
$ ssh-keygen -t rsa -C "[email protected]"
------------本地>>遠端(上傳自己的專案)(先init add commit一把梭)-------------------
$ git remote add origin [email protected]:michaelliao/learngit.git //將本地庫與遠端庫關聯
(michaelliao替換成自己的GitHub賬戶名)(遠端庫的名字就是origin 可修改)
(當需要關聯多個庫的時候 名字另外取)
$ git push -u origin master //推送本地庫內容到遠端庫
(-u 將 本地master分支 內容推送到 遠端新的master分支,並且關聯2個分支)
(以後本地做修改提交可不加 -u)
git remote //檢視遠端庫資訊(名稱) 一般為origin
git remote -v //更詳細的資訊
git remote rm origin //刪除已有的遠端庫關聯
------------遠端>>本地-------------------
$ git clone [email protected]:michaelliao/gitskills.git //克隆遠端倉庫到本地
---------------------分支管理--------------------------------------------------------
git branch dev //建立
git checkout dev //切換
git checkout -b dev //建立本地分支並且切換 -b 表示建立並切換
git branch //檢視當前分支(列出所有分支,當前分支前面標註 * 號)
git branch -d dev //刪除分支 -D強制刪除
git checkout -b dev origin/div //建立遠端庫origin的dev分支到本地,相關聯
$ git branch --set-upstream-to=origin/dev dev //設定本地dev與origin/dev跟蹤連結
git merge dev //合併制定分支到當前分支 提示資訊Fast-forward: 快進模式的合併(修改指標)
git merge --no-ff -m "merge with no-ff" dev // --no-ff 表示禁用Fast-forward;-m 描述資訊
合併分支時,加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併。
git stash //儲藏當前工作區
git stash list //檢視儲藏的工作現場
git stash apply //恢復工作區,但是stash內容不刪除
git stash apply [email protected]{0} //恢復指定工作區
git stash drop //刪除stash內容
git stash pop //恢復工作區,同時刪除stash
git rebase //把本地未push的分叉提交歷史整理成直線;方便檢視歷史提交
---------------------標籤--------------------------------------------------------
切換到需要標籤的分支
git tag <name> //打上新標籤
git tag //檢視所有標籤(標籤列出按字母排序)
git tag <name> <commit id> //對應之前commit過後的版本打上標籤
git tag -a <name> -m "" <commit id> // -a 指定標籤名 -m 指定說明文字
git show <tagname> //檢視tagname的標籤資訊
git tag -d v0.1 //刪除本地tag標籤
git push origin <tagname> //推送標籤到遠端
git push origin --tags //推送全部本地tag標籤
刪除本地tag之後 git push origin :refs/tags/v0.1 //刪除遠端tag
---------------------忽略特殊檔案--------------------------------------------------------
新建 .gitignore 寫入需要忽略的檔案----戰略合作www.baidu.com
(未完待續。。。)