Git是由Linux kernel創(chuàng)立者 Linux Torvalds 開發(fā)的(因為BitKeeper的問題),屬于DVCS(分布式版本控制)
Github 是一個開源項目社區(qū),始于2007(08上線),GitHub 里面的項目可以通過標(biāo)準(zhǔn)的 Git 命令進(jìn)行訪問和操作
跳過步驟
·安裝
·幾個控制版本之間的區(qū)別
·還有 一些純理論的,可以直接看書;
Pro Git V2書本傳送門
而我這篇博文只是介紹一些常用的命令及技巧心得
Git
全局配置
git config --global user.name crperlin #git的用戶名
git config --global user.email crper@outlook.com #git的登錄賬號
git config --global core.editor vim #設(shè)置默認(rèn)編輯器
git config --global merge.tool vimdiff #設(shè)置默認(rèn)的對比文件差異工具
git config --global color.status auto #顯示顏色信息
git config --global color.branch auto #顯示顏色信息
git config --global color.interactive auto #顯示顏色信息
git config --global color.diff auto #顯示顏色信息
git config --global push.default simple #簡化提交
git config --list#查看配置的信息
git help config#獲取幫助信息
配置SSHKEY
配置這貨的好處就是可以省去提交的時候每次都輸入賬號密碼;減少重復(fù)工作!
不管是github還是一些基于gitlab的托管社區(qū),配置這個都是大同小異,在個人賬戶那里找到SSH-KEYGEN
ssh-keygen -t rsa -C crper@outlook.com #生成密鑰,也可以通過圖形工具生成,看個人喜好
ssh -T git@github.com #測試鏈接github是否成功,其他社區(qū)域名不同罷了
初始化本地倉庫/提交/鏈接遠(yuǎn)程倉庫
git init #初始化
git status #獲取狀態(tài),很實用的一個功能,對文件做了操作都能看到各種提示信息
git add git commit -m '注釋文本' #添加注釋 git remote add origin git@github.com:crperlin/S-NEXT.git #本地鏈接遠(yuǎn)程倉庫 git push -u origin master #推送到主分支 克隆遠(yuǎn)程倉庫 一般的git托管社區(qū)都提供兩種,一種是基于https,一種是基于ssh 前者需要賬號密碼提交,后者可以配置SSH-KEYGEN git clone git@github.com:crperlin/S-NEXT.git #克隆到本地,倉庫名就是文件夾的名字 git clone xx.git <自定義文件夾名字> #不需要帶括號,只是區(qū)別 git倉庫操作 git add *#跟蹤新文件 git rm -f * #強(qiáng)制刪除所有文件 git rm --cached * #取消跟蹤 git mv file_from file_to #重命名跟蹤文件,與linux一致 git log#查看提交記錄 git commit#提交更新 git commit -m '注釋文本' #添加注釋 git commit -a #跳過使用暫存區(qū)域,把所有已經(jīng)跟蹤過的文件暫存起來一并提交 git commit --amend #修改最后一次提交 git reset HEAD *#取消已經(jīng)暫存的文件 git checkout -- file#取消對文件的修改(從暫存區(qū)去除file) git checkout branch|tag|commit -- file_name#從倉庫取出file覆蓋當(dāng)前分支 git checkout -- .#從暫存區(qū)去除文件覆蓋工作區(qū) 分支管理 git branch #列出本地分支 git branch -r #列出遠(yuǎn)端分支 git branch -a #列出所有分支 git branch -v #查看各個分支最后一個提交對象的信息 git branch --merge #查看已經(jīng)合并到當(dāng)前分支的分支 git branch --no-merge #查看為合并到當(dāng)前分支的分支 git branch test #新建test分支 git checkout test #切換到test分支 git checkout -b test #新建+切換到test分支 git checkout -b test dev#基于dev新建test分支,并切換 git branch -d test #刪除test分支 git branch -D test #強(qiáng)制刪除test分支 git merge test #將test分支合并到當(dāng)前分支 git rebase master #將master分之上超前的提交,變基到當(dāng)前分支 分支數(shù)據(jù)推送更新 git fetch origin branch #獲取遠(yuǎn)端上指定分支 git merge origin branch #合并遠(yuǎn)端上指定分支 git push origin branch #推送到遠(yuǎn)端上指定分支 git push origin localbranch:serverbranch #推送到遠(yuǎn)端上指定分支 git checkout -b test origin/dev #基于遠(yuǎn)端dev新建test分支 git push origin :server#刪除遠(yuǎn)端分支[推送空分支,目前等同于刪除] 標(biāo)簽版本管理 git tag#列出現(xiàn)有標(biāo)簽 git tag v1.0.0 #新建標(biāo)簽 git tag -a v0.1 -m '注釋文本' #新建帶注釋標(biāo)簽 git tag v2.0 9fceb02 #給指定的指向添加版本 git show git checkout tagname#切換到標(biāo)簽 git push origin v1.5#推送分支到源上 git push origin --tags#一次性推送所有分支 git tag -d v0.1#刪除標(biāo)簽 git push origin :refs/tags/v0.1#刪除遠(yuǎn)程標(biāo)簽 alias【別名系統(tǒng),基本和linux一致】 一. 到配置文件配置,最傻瓜化的寫法,等值賦予 [alias] logs = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit st = status ci = commit br = branch co = checkout df = diff lg = log -p 二. 命令行追加 git config --global alias.co checkout git config --global alias.ci commit git config --global alias.br branch ... 文本搜索 git grep '查詢文本' #對全局的字符串查詢 git grep '查詢文本' v1.0.0 #針對版本的字符串查詢 文件修改詳情跟蹤 git blame 撤銷 #放棄工作目錄下的所有修改: git reset --hard HEAD #移除緩存區(qū)的所有文件(i.e. 撤銷上次git add): git reset HEAD #放棄某個文件的所有本地修改: git checkout HEAD #重置一個提交(通過創(chuàng)建一個截然不同的新提交) git revert #將HEAD重置到指定的版本,并拋棄該版本之后的所有修改: git reset --hard #將HEAD重置到上一次提交的版本,并將之后的修改標(biāo)記為未添加到緩存區(qū)的修改: git reset #將HEAD重置到上一次提交的版本,并保留未提交的本地修改: git reset --keep
聯(lián)系客服