git 經常使用命令整理

根據本身在項目中使用比較多的,總結了如下比較經常使用的git命令:html

 

#關係圖
遠程倉庫(Remote) - 本地倉庫(Repository) - 暫存區(Index) - 本地工做空間(Workspace)jquery

-------------------------------------------------
#git我的郵箱暱稱配置
git config --global user.email "xxx@example.com"
git config --global user.name "xxx"git

若是用了 --global 選項,那麼更改的配置文件就是位於你用戶主目錄下的那個,之後你全部的項目都會默認使用這裏配置的用戶信息。若是要在某個特定的項目中使用其餘名字或者電郵,只要去掉 --global選項從新配置便可,新的設定保存在當前項目的 .git/config 文件裏。github

 

#查看已配置信息安全

git config --listapp

#直接查閱某個環境變量的設定ssh

git config user.nameide

 

#生成祕鑰
ssh-keygen -t rsafetch

 

#git clone時出現
Permissions 0670 for '/home/xxx/.ssh/id_rsa' are too open.
直接
chmod 400 ~/.ssh/id_rsa
便可ui

#祕鑰存放地址
cd ~/.ssh

#倉庫初始化(刪除倉庫的話把目錄下的 .git 目錄刪除便可)
git init

tips: ls -al 會看到有個.git文件夾

#倉庫初始化(裸倉)
git init --bare
-------------------------------------------------

 

-------------------------------------------------
#把文件加到暫存區(stage/index)
git add test.txt
或(.表明當前目錄下的全部)
git add .

#提交(暫存區的全部內容提交到本地倉庫)
git commit -m "commit mark"

#提交(-a 會將修改或者刪除的文件自動加到暫存區,可是新增文件不會;若是沒有新增文件的話就至關於add & commit)
git commit -a -m "commit mark"

#查看倉庫當前的狀態
git status
-------------------------------------------------

 

-------------------------------------------------
#克隆(-o 參數能夠命名遠程主機名,默認爲origin)
git clone https://github.com/jquery/jquery.git
git clone -o qewr https://github.com/jquery/jquery.git

#列出全部遠程倉庫
git remote -v

#查看遠程倉庫詳細信息
git remote show <主機名>

#將一個庫加到本身主機上 命名爲 qwer
git remote add <主機名> <網址>
git remote add qwer git@github.com:ddmmddmm/wuziqi.git

#刪除遠程庫配置
git remote rm <主機名>
git remote rm qwer

#更改遠程倉庫名稱
git remote rename <原主機名> <新主機名>
git remote rename qwer getAsdf
-------------------------------------------------

 

-------------------------------------------------
#下載遠程倉庫的全部變更
git fetch [remote]

#取回遠程倉庫的變化,並與本地分支合併
git fetch origin master
git pull [remote] [branch]

#將本地分支推送到遠程倉庫
git push origin dev:dev
意思是「上傳我本地的 dev 分支到遠程倉庫中去,仍舊稱它爲 dev 分支」
或者 git push origin dev

#將本地分支推送到遠程倉庫並創建追蹤關係
git push -u origin dev:dev
-------------------------------------------------

 

-------------------------------------------------
#恢復暫存區的指定文件到工做區
git checkout [file]

#重置暫存區與工做區,與上一次commit保持一致
git reset --hard

#回退到上個commit
git reset --hard HEAD^

#回退到上上個commit(在Git中,用HEAD表示當前版本,上一個版本就是HEAD^,上上一個版本就是HEAD^^,固然往上100個版本寫100個^比較容易數不過來,因此寫成HEAD~100)
git reset --hard HEAD~2

#重置當前分支的HEAD爲指定commit,同時重置暫存區和工做區,與指定commit一致
$ git reset --hard [commit]

#撤銷某個commit的修改,並自動提交一個commit
(revert 撤銷一個提交的同時會建立一個新的提交。這是一個安全的方法,由於它不會重寫提交歷史,而reset會直接移動分支指針,revert只針對一個)
git revert [commitId]

#查看某個文件修改內容
git diff test.txt

#顯示具體的某次的改動的修改
git show [commitId]

#查看提交記錄(--pretty=oneline 參數能夠單行顯示)
git log

#查看操做記錄(若是回退版本以後,又想恢復到當前版本,能夠經過此命令查到commit_id,從而恢復)
git reflog

#刪除文件(記得commit)
git rm xxx

#刪除遠端的文件夾,但不改動到本地目錄
例如刪除遠端的.idea文件夾,注意此句執行以後須要commit 和 push
(--cached: Use this option to unstage and remove paths only from the index. Working tree files, whether modified or not, will be left alone.)
git rm -r --cached \.idea

-------------------------------------------------

 

-------------------------------------------------
#查看本地分支
git branch

#列出全部遠程分支
git branch -r

#列出全部本地分支和遠程分支
git branch -a

#建立分支
git branch dev

#切換分支
git checkout dev

#建立+切換分支
git checkout -b dev

#合併dev到當前分支
git merge dev

#刪除分支
git branch -d dev

#查看分支的追蹤關係
git branch -vv

#本地分支與遠程分支創建關聯(git pull,git push時能夠不用指定,另外一個更爲簡潔的方式是初次push時,加入-u參數)

git branch --set-upstream-to=origin/dev_xxx dev_xxx

-------------------------------------------------

 

-------------------------------------------------
#列出全部tag
git tag

#新建一個一個叫"myTag"的tag在當前commit
git tag myTag

#新建一個tag在指定commit
git tag myTag [commit]

#刪除本地指定tag
git tag -d myTag

#查看tag信息
git show myTag

#提交指定tag
git push origin myTag

#提交全部tag
git push origin --tags
-------------------------------------------------

 

-------------------------------------------------
#將當前的修改儲藏起來
git stash

#查看儲藏堆棧
git stash list

#從儲藏中恢復最近一個,但不刪除
git stash apply

#從儲藏中恢復指定的stash,但不刪除(stash@{2}在list中能夠看到)
git stash apply stash@{2}

#從儲藏中恢復最近一個,並刪除(stash@{2}在list中能夠看到)
git stash pop

#從儲藏中恢復指定的stash,並刪除(stash@{2}在list中能夠看到)
git stash pop stash@{2}

#從儲藏中刪除
git stash drop stash@{2}
-------------------------------------------------

 

參考:

#git的使用
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

#git - 簡明指南
http://rogerdudler.github.io/git-guide/index.zh.html

#經常使用 Git 命令清單http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

相關文章
相關標籤/搜索