Git是目前世界上最早進的分佈式版本控制系統(沒有之一)。html
小明作了個我的博客,放到了Git 倉庫裏面。次日換了臺電腦,只須要 git clone 克隆一下git 遠程倉庫的代碼到本地便可。而後他又對項目新增了一個又一個新的功能,每次作完以後,只須要git add ... commit ... push 到Git 倉庫裏面去就行了,每一次提交到遠程倉庫都會自動的生成一個歷史版本永久存放在Git中。某日,小明發現他最近一次的更改將本身的博客改壞了,致使不少功能失效,因而 他只須要 git reset --hard f8af3fe。。。就又恢復到 f8af3fe 此次提交上了,而後從新提交一下,博客就所有恢復了,可是後面改的東西沒了,他能夠將最後一次的修改代碼再放到本地檢測 測試經過後提交 而後完美保存。
git
Git 就是這麼個簡單的工具!github
簡單的幾句代碼能夠給碼農帶來很大的便利,並且在必定的存儲空間內,Git 徹底開源免費!幫你存儲不怕丟失!至於安全,你不相信他你就不要用他!web
不一樣的系統安裝方法不一,自行安裝,本博客主要是寫給本身看的,萬一忘記了能夠快速瀏覽本身的博客!sql
簡單的介紹一下git 經常使用的命令:緩存
git pull 獲取線上最新代碼
安全
查看當前分支狀態
rm a.html 刪除a.html文件
git rm a.html 從版本庫中刪除文件
git log 查看歷史提交
git reflog 查看提交的命令歷史
git statusgit diff a.html 查看當前文件的最近修改
git add a.html 添加單個修改的文件
git add . 添加全部修改的文件git commit -m "註釋" 提交併給本次提交打上 「註釋」 的標籤,也能夠
git commit -am "註釋"
git commit -m "註釋" 提交併給本次提交打上 「註釋」 的標籤,也能夠 git commit -am "註釋"
git push origin master 將本地提交後的代碼推送到線上Git倉庫master分支
git branch -u origin/mybranch 或者 git push origin/mybranch -u 關聯遠程分支
git pull origin master 指定只獲取線上master分支代碼
git push origin master 將本地提交後的代碼推送到線上Git倉庫master分支
git branch -u origin/mybranch 或者 git push origin/mybranch -u 關聯遠程分支
git pull origin master 指定只獲取線上master分支代碼
git clone git@github.com:999999/88888.git 克隆git倉庫的項目到本地
git branch dev 建立一個dev的分支(等於上個分支的代碼)
git checkout dev 簽出dev分支
git checkout -b dev 上面兩行合併爲此一行
git branch -d dev 普通刪除 dev 分支
git branch -D dev 強制刪除 dev 分支
git checkout -b dev origin/dev 從遠程簽出 dev 分支
git push origin --delete <remote-branchname> 刪除遠程分支ruby
git push origin :<remote-branchname> 同上(刪除遠程)app
git branch -m <new-branch-name> 重命明當前分支分佈式
git commit --amend 修改上一個commit的描述
git blame <file-name> 查看某文件做者
git branch --set-upstream dev origin/dev 將本地分支和遠程分支構建連接
git tag v1.11.1 打上 v1.11.1 的標籤
git tag -d v1.11.1 刪除 v1.11.1 的標籤
git push origin :refs/tags/v0.9 to
git push origin :refs/tags/v0.9 to git@github.com:999999/88888.git從遠程刪除v0.9的標籤
從遠程刪除v0.9的標籤
小明正在 master 分支上開發項目,忽然接到緊急任務 須要去product 分支上修改某個文件!
因而小明能夠選擇 提交後切換分支,也能夠將當前分支的修改放入暫存區保存起來
小明正在 master 分支上開發項目,忽然接到緊急任務 須要去product 分支上修改某個文件!
因而小明能夠選擇 提交後切換分支,也能夠將當前分支的修改放入暫存區保存起來
查看儲藏列表信息
git stash apply 恢復儲藏的狀態(但並不刪除該儲藏)
git stash 本地儲藏當前修改
git stash listgit stash pop恢復並刪除最後提交的儲藏
git stash clear 刪除全部儲藏
git stash apply stash@{0} 恢復第{0}的儲藏
git merge dev 將當前分支與dev 分支合併,合併後 dev分支不變,當前分支代碼齊全
最煩的就是合併衝突 假設出現了衝突就很麻煩 webStrom 自帶了解決衝突 對比文件的(我的不太習慣)
我電腦Mac 下載了一個 Beyond Compare 軟件
假設出現了合併衝突 就使用 git mergetool 命令
將自動調用並打開 Beyond Compare 軟件,至於怎麼用,本身看吧 也很簡單,選好了,快捷鍵保存退出便可!
git remote 查看全部遠程倉庫
git remote set-url origin <URL> 修改遠程倉庫 URL
git remote add origin <remote-url> 增長遠程倉庫
git checkout <branch-name> && git cherry-pick <commit-id> 把A分支的某一個commit放到b分支上
追加:
修改已commit的內容:
若是隻是commit到了本地 ,未push:
git commit --amend
會打開本地緩存文件,修改一下第一行上一個commit的內容保存退出便可
若是要將本地和線上的commit 內容進行修改
git commit -f --amend (並不建議)
同上
神器
如 git status 如何直接使用 git st 達到一樣的效果
神器
如 git status 如何直接使用 git st 達到一樣的效果
git config --global alias.st status 這就使 git status === git st 了
一樣
git config --global alias.co checkout git co
git config --global alias.ci commit git ci
git config --global alias.br branch git br
大致上就是這麼多了 可以靈活使用就好,固然還有個別的沒寫出來,歡迎評論提點!
更詳細的東西看 廖雪峯Git教程 吧!