git總結(jié)
標(biāo)簽(空格分隔): git
本文是對廖雪峰的git教程的總結(jié)
[TOC]
創(chuàng)建版本庫
- 創(chuàng)建版本庫:git init
- 把文件添加到倉庫:git add <file name>
- 把本目錄所有文件添加到倉庫:git add .
- 提交到本地倉庫:git commit -m "提交信息"
時(shí)光機(jī)穿梭
- 掌握倉庫的狀態(tài):git status
- 查看文件修改狀況:git diff <file name>
版本回退
- 查看提交log記錄:git log
- log記錄簡化輸出:git log --pretty=oneline
- 版本重置為上一次提交時(shí)狀態(tài):git reset --hard HEAD
- 版本重置為上上一次提交時(shí)狀態(tài):git reset --hard HEAD^
- 版本重置為某一次提交時(shí)狀態(tài):git reset --hard <提交id>
- 查詢所有提交命令:git reflog
撤銷修改
- 放棄對工作區(qū)的修改:git checkout -- <file name>
- 撤銷對暫緩區(qū)的修改:git reset HEAD <file name>
- 查詢所有提交命令:git reflog
時(shí)光機(jī)穿梭
- 創(chuàng)建SSH Key:ssh-keygen -t rsa -C "youremail@example.com"
添加遠(yuǎn)程倉庫
- 本地倉庫與遠(yuǎn)程倉庫關(guān)聯(lián):git remote add origin <倉庫地址>
- 第一次推送:git push -u origin master
- 以后的推送:git push origin master
從遠(yuǎn)程庫克隆
- 本地倉庫與遠(yuǎn)程倉庫關(guān)聯(lián):git clone <倉庫地址>
分支管理
創(chuàng)建與合并分支
- 創(chuàng)建dev分支:git branch dev
- 切換到dev分支:git checkout dev
- 創(chuàng)建并切換到dev分支:git checkout -b dev
- 查看所有分支:git branch
- 把dev分支合并到當(dāng)前分支:git merge dev
- 刪除dev分支:git branch -d dev
解決沖突
- 查看分支的合并情況:git log --graph --pretty=oneline --abbrev-commit
分支管理策略
- 禁用快速合并模式:git merge --no-ff -m "merge with no-ff" dev
Bug分支
- 儲存工作現(xiàn)場:git stash
- 回復(fù)工作現(xiàn)場:git stash apply stash@{0}
- 刪除stash內(nèi)容:git stash drop
- 回復(fù)并刪除上一次stash:git stash pop
- 查看stash列表:git stash list
Feature分支
- 強(qiáng)行刪除分支:git branch -D <feature-vulcan>
多人協(xié)作
- 查看遠(yuǎn)程庫信息孝鹊,使用
git remote -v
;- 本地新建的分支如果不推送到遠(yuǎn)程展蒂,對其他人就是不可見的又活;
- 從本地推送分支,使用
git push origin branch-name
锰悼,如果推送失敗柳骄,先用git pull
抓取遠(yuǎn)程的新提交;- 如果
git pull
提示“no tracking information”松捉,則說明本地分支和遠(yuǎn)程分支的鏈接關(guān)系沒有創(chuàng)建夹界,用命令git branch --set-upstream branch-name origin/branch-name
。- 在本地創(chuàng)建和遠(yuǎn)程分支對應(yīng)的分支隘世,使用
git checkout -b branch-name origin/branch-name
可柿,本地和遠(yuǎn)程分支的名稱最好一致;- 從遠(yuǎn)程抓取分支丙者,使用
git pull
复斥,如果有沖突,要先處理沖突械媒。
標(biāo)簽管理
創(chuàng)建標(biāo)簽
- 給當(dāng)前分支打一個(gè)新標(biāo)簽:git tag <tag name>
- 給某一次提交打一個(gè)標(biāo)簽:git tag <tag name> <提交的id>
- 查看所有標(biāo)簽:git tag
- 查看標(biāo)簽信息:git show <tag name>
- 打標(biāo)簽時(shí)帶上說明信息:git tag -a v0.1 -m "version 0.1 released" <提交的id>
操作標(biāo)簽
- 刪除標(biāo)簽:git tag -d v0.1
- 推送標(biāo)簽到遠(yuǎn)程:git push origin v1.0
- 推送所有本地標(biāo)簽:git push origin --tags
- 刪除遠(yuǎn)程標(biāo)簽:git push origin :refs/tags/v0.9
使用GitHub
- 在GitHub上目锭,可以任意Fork開源倉庫评汰;
- 自己擁有Fork后的倉庫的讀寫權(quán)限;
- 可以推送pull request給官方倉庫來貢獻(xiàn)代碼痢虹。
自定義Git
- 讓Git顯示顏色:git config --global color.ui true
配置別名
- 用co表示checkout:git config --global alias.co checkout
- lg縮寫:git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"