這篇文章主要是為了自己能快速翻找Git指令,不做具體介紹,想學習Git怎麼用,請移步 廖雪峰的《Git教程》 。這篇教程淺顯易懂,花個幾小時就能懂,上手非常快的。
Git配置:
//配置使用者名
$ git config --global user.name "Your Name"
//配置Email位址
$ git config --global user.email "[email protected]"
注意:git config指令的–global參數,表示你這台機器上所有的Git倉庫都會使用這個配置
下面是一些非必需的配置,看個人喜好。
//配置顯示顔色
$ git config --global color.ui true
//配置别名(非必須,可忽略)
$ git config --global alias.st status
//将status配置為st = $ git status => $ git st
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
$ git config --global alias.unstage 'reset HEAD'
//$ git reset HEAD file => $ git unstage file
$ git config --global alias.last 'log -1'
//顯示最後一次送出資訊 $ git last
初始化/添加/送出:
//初始化Git倉庫
$ git init
//将檔案添加到倉庫
$ git add <file>
$ git add mx.txt
//将檔案送出到倉庫
$ git commit -m "送出描述"
檢視狀态/曆史/對比:
//檢視倉庫目前狀态
$ git status
//檢視修改内容,對比
$ git diff
//檢視工作區和版本庫最新版本差別
$ git diff HEAD -- mx.txt
//顯示最近到最遠的送出日志,送出曆史
$ git log
$ git log --pretty=oneline
//檢視分支合并情況
$ git log --graph
$ git log --graph --pretty=oneline --abbrev-commit
//檢視指令操作曆史記錄
$ git reflog
回退/撤銷/删除:
//回退上一個版本
$ git reset --hard HEAD^
//上一個版本HEAD^
//上上一個版本HEAD^^
//上100個版本HEAD~100
//HEAD指目前版本
//回退某個指定版本
$ git reset --hard <commit_id>
$ git reset --hard 3628164
//3628164 commit id,版本号可以不寫全,能找到就可以
//把暫存區的修改回退到工作區
$ git reset HEAD <file>
//撤銷工作區檔案修改到最近一次commit或add
$ git checkout -- <file>
$ git checkout -- mx.txt
//從版本庫中删除檔案
$ git rm <file>
$ git rm mx.txt
遠端倉庫:
//本地倉庫和遠端倉庫關聯(GitHub倉庫)
$ git remote add origin git@server-name:path/repo-name.git
$ git remote add origin [email protected]:github使用者名/github倉庫
$ git remote add origin [email protected]:mingsixue/mxue.git
//origin 遠端倉庫名字,Git預設叫法
//檢視遠端倉庫資訊
$ git remote
//檢視遠端倉庫更詳細資訊
$ git remote -v
//把本地倉庫内容推送到遠端倉庫
$ git push -u origin master
$ git push origin <branch_name>
$ git push origin master
//-u 參數會把本地master分支和遠端master分支關聯起來
//把遠端倉庫内容拉到本地倉庫
$ git pull
//指定本地dev分支和遠端origin/dev分支連結
$ git branch --set-upstream <branch_name> origin/<branch_name>
$ git branch --set-upstream dev origin/dev
//從遠端倉庫克隆
//SSH方式
$ git clone [email protected]:mingsixue/mxue.git
//HTTPS方式
$ git clone https://github.com/mingsixue/mxue.git
分支管理:
//建立新的分支
$ git branch <branch_name>
$ git branch dev
//建立新分支并切換
$ git checkout -b <branch_name>
$ git checkout -b dev
//-b建立分支并切換,相當于下面指令
//$ git branch dev
//$ git checkout dev
//切換分支
$ git checkout <branch_name>
$ git checkout dev
//檢視目前分支
$ git branch
//把dev分支合并到master,快進模式Fast-forward,删除分支後會丢掉分支資訊
$ git merge <branch_name>
$ git merge dev
$ git merge --no-ff -m "送出描述" dev
//--no-ff表示禁用Fast-forward,普通合并模式,會建立一個新的commit
//删除分支
$ git branch -d <branch_name>
$ git branch -d dev
//強行删除分支
$ git branch -D <branch_name>
$ git branch -D dev
//儲存工作現場
$ git stash
//檢視儲存的工作現場
$ git stash list
//恢複儲存的工作現場内容
$ git stash apply
$ git stash apply stash@{0}
//删除儲存的工作現場
$ git stash drop
//恢複并删除工作現場
$ git stash pop
//相當于上面兩條指令
标簽:
//建立标簽
$ git tag <tag_name>
$ git tag v1.0
//預設标簽打在最新的commit上
//建立指定commit id的标簽
$ git tag <tag_name> <commit_id>
$ git tag v0.9 6224937
//建立帶說明的标簽
$ git tag -a <tag_name> -m "标簽描述" <commit_id>
$ git tag -a v0.1 -m "标簽描述"
$ git tag -a v0.1 -m "标簽描述" 3628164
//檢視所有标簽
$ git tag
//檢視标簽資訊
$ git show <tag_name>
$ git show v0.9
//删除标簽
$ git tag -d <tag_name>
$ git tag -d v0.9
//推送标簽到遠端倉庫
$ git push origin <tag_name>
$ git push origin v0.9
//一次性推送标簽到遠端倉庫
$ git push origin --tags
//删除遠端倉庫标簽
$ git push origin :refs/tags/<tag_name>
$ git push origin :refs/tags/v0.9
//本地要先删除标簽
忽略特殊檔案
在Git工作區的根目錄建立 .gitignore 檔案,把要忽略的檔案名寫進去,一行一個,支援 * 比對。寫完後送出到Git。
具體怎麼忽略,看這裡
//檢視檔案被哪條規則忽略
$ git check-ignore -v <file>
//強制添加檔案
$ git add -f <file>
指令行:
一些常用的指令行指令。
//建立空目錄
$ makir <dir_name>
$ mkdir mxue
//進入mxue目錄
$ cd <dir_name>
$ cd mxue
//顯示目前目錄路徑
$ pwd
//檢視隐藏目錄
$ ls -ah
//檢視檔案内容
$ cat <file>
$ cat mx.txt
//删除檔案
$ rm <file>
$ rm mx.txt
git錯誤:
錯誤:fatal: refusing to merge unrelated histories
$ git pull origin master --allow-unrelated-histories
參考文章:
git無法pull倉庫refusing to merge unrelated histories錯誤:failed to push some refs to ‘[email protected]:mingsixue/Chrome-Plugin.git’
$ git pull --rebase origin master
出現錯誤的主要原因是github中的README.md檔案不在本地代碼目錄中
如何解決failed to push some refs to git http://blog.mingsixue.com/it/git-command-line.html