初始化版本庫git
git init github
將修改添加到暫存區 app
git add <file> ssh
將暫存區提交到版本庫分支 fetch
git commit -m "message" spa
跳過暫存區直接提交工做區的修改開發
git commit -a -m '修改內容說明' rem
查看工做區的狀態 同步
git status it
查看工做區修改內容,即工做區與暫存區的區別
git diff <file>
恢復到指定id的版本
git reset --hard <commitid>
查看提交歷史
git log
查看格式化後的提交歷史
git log --pretty=oneline
查看將來的歷史命令
git reflog
查看工做區和版本庫裏面最新版本的區別
git diff HEAD -- readme.txt
用版本庫裏<file>的版本替換工做區<file>的版本
git checkout -- <file>
一種是<file>自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態;
一種是<file>已經添加到暫存區後,又做了修改,撤銷修改就回到添加到暫存區後的狀態。
能夠把暫存區的修改撤銷掉,不修改工做區
git reset HEAD <file>
從版本庫中刪除文件
git rm <file>
建立SSH Key
ssh-keygen -t rsa -C "youremail@example.com"
與遠程倉庫創建關聯
git remote add origin git@github.com/liuyuantao1990/git-test.git
把本地庫的全部內容推送到遠程庫
git push -u origin master
第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在之後的推送或者拉取時就能夠簡化命令
以HTTPS協議形式從遠程庫克隆內容的到本地庫
git clone https://github.com/liuyuantao1990/git-test.git
以SSH協議形式從遠程庫克隆內容的到本地庫
git clone git@github.com:liuyuantao1990/git-test.git
從遠程倉庫抓取數據
git fetch <remote-name>
查看遠程倉庫信息
git remote show <remote-name>
遠程倉庫重命名
git remote rename <old-name> <new-name>
master分支是主分支,所以要時刻與遠程同步;
dev分支是開發分支,團隊全部成員都須要在上面工做,因此也須要與遠程同步;
bug分支只用於在本地修復bug,就不必推到遠程了,除非老闆要看看你每週到底修復了幾個bug;
feature分支是否推到遠程,取決於你是否和你的小夥伴合做在上面開發。
建立並切換<name>分支
git checkout -b <name>
查看分支
git branch
建立<name>分支
git branch <name>
切換到<name>分支
git checkout <name>
合併指定分支到當前分支
git merge <name>
刪除<name>分支
git branch -d <name>
查看分支的合併狀況
git log --graph --pretty=oneline --abbrev-commit
查看分支合併圖
git log --graph
採用普通模式合併制定分支到當前分支
git merge --no-ff -m "普通模式合併分支" <name>
保存工做區的內容,之後恢復工做區後能夠繼續工做
git stash
恢復保存的工做區,可是恢復後,stash內容並不刪除
git stash apply
刪除保存的工做區的內容
git stash drop
恢復保存的工做區,同時刪除stash內容
git stash pop
強行刪除分支
git branch -D <name>
查看遠程庫的信息
git remote
查看遠程庫的詳細信息
git remote -v
將master分支推送到遠程庫對應的遠程分支
git push origin master
從遠程抓取分支
git pull
創建本地<branch-name>分支和遠程<branch-name>分支的關聯
git branch --set-upstream <branch-name> origin/<branch-name>
新建標籤
git tag v1.0
根據提交的id建立帶說明的標籤
git tag -a v0.1 -m "version 0.1 released" commit id
查看全部標籤
git tag
查看<tagname>標籤信息
git show <tagname>
推送一個本地標籤到遠程
git push origin <tagname>
推送所有未推送過的本地標籤到遠程
git push origin --tags
刪除標籤
git tag -d v0.1
刪除遠程標籤
git push origin :refs/tags/v0.1
從暫存區恢復文件到工做區
當執行 "git checkout ." 或者 "git checkout -- <file>" 命令時,會用暫存區所有或指定的文件替換工做區的文件。
從版本庫恢復文件到工做區和暫存區
當執行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令時,會用 HEAD 指向的 master 分支中的所有或者部分文件替換暫存區以及工做區中的文件。
從版本庫恢復提交到暫存區
git reset --soft <commitid>
從版本庫恢復提交到暫存區和工做區,等同於git checkout HEAD .
git reset --hard <commitid>