開(kāi)發(fā)項(xiàng)目常用的幾個(gè)命令:
git status //日常操作
git add .
git commit -m "xxx"
git pull origin master
git push origin master
git log // 版本回退
git reset --hard e26ba6
git branch
git checkout -b dev //創(chuàng)建切換分支
1、本地庫(kù)
$ mkdir learngit //創(chuàng)建一個(gè)空目錄
$ cd learngit
$ pwd //pwd命令用于顯示當(dāng)前目錄
/Users/michael/learngit
$ git init //把目錄變成Git可以管理的倉(cāng)庫(kù)
$ git add . //添加文件
$ git commit -m "xxx" //提交文件
$ git diff readme.txt //查看difference
$ git checkout -- readme.txt //丟棄工作區(qū)的修改
$ git reset HEAD readme.txt //丟棄暫存區(qū)的修改,在執(zhí)行上一步
$ git log
$ git reset --hard e2aeg6版本號(hào) //丟棄commit,版本回退
2、遠(yuǎn)程庫(kù)
$ git remote add origin https://github.com/shiyuanping/elema.git 關(guān)聯(lián)遠(yuǎn)程庫(kù)
$ git push -u origin master //第一次推送master分支內(nèi)容:加上-u,把本地和遠(yuǎn)程的master關(guān)聯(lián)起來(lái)
$ git clone https://github.com/shiyuanping/elema.git //克隆遠(yuǎn)程庫(kù)
3、分支管理
$ git checkout -b dev //創(chuàng)建dev分支并切換到dev分支
===
$ git branch dev //創(chuàng)建分支
$ git checkout dev(分支名稱) //切換分支
$ git branch //查看當(dāng)前分支
$ git merge <name> //合并某分支到當(dāng)前分支
$ git merge dev //把dev分支的工作成果合并到master分支上(當(dāng)前分支master)
$ git branch -d dev //刪除分支
$ git remote //查看遠(yuǎn)程庫(kù)的信息
$ git remote -v //查看遠(yuǎn)程庫(kù)的詳細(xì)信息
$ git push origin master //推送分支
4、標(biāo)簽管理
$ git checkout master //切換到需要打標(biāo)簽的分支上
$ git tag v1.0(標(biāo)簽名) //默認(rèn)標(biāo)簽是打在最新提交的commit上
$ git tag //查看所有標(biāo)簽
$ git tag -d v0.1 //刪除本地標(biāo)簽
$ git log //對(duì)歷史commit打標(biāo)簽
$ git tag v0.9 f52c633 //標(biāo)簽名、版本號(hào)
$ git show v0.9 //查看標(biāo)簽信息
$ git tag -a v0.1 -m "version 0.1 released"
//創(chuàng)建帶有說(shuō)明的標(biāo)簽,用-a指定標(biāo)簽名,-m指定說(shuō)明文字
$ git push origin v1.0 //推送某個(gè)標(biāo)簽到遠(yuǎn)程
$ git push origin --tags //一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽
//刪除遠(yuǎn)程標(biāo)簽:先從本地刪除,再?gòu)倪h(yuǎn)程刪除
$ git tag -d v0.9
$ git push origin :refs/tags/v0.9
配置別名
$ git config --global alias.st status //st就表示status。git status = git st
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
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"
別名文件:Git配置文件都放在.git/config文件中
[alias]
co = checkout
ci = commit
br = branch
st = status
忽略特殊文件
在Git工作區(qū)的根目錄下創(chuàng)建一個(gè)特殊的.gitignore文件,然后把要忽略的文件名填進(jìn)去,Git就會(huì)自動(dòng)忽略這些文件。
# compiled output
/dist
/tmp
/out-tsc
# System Files
.DS_Store
Thumbs.db
package.bak.js
解決沖突:
先用git pull把最新的提交從origin/dev抓下來(lái),然后,在本地合并,解決沖突,再推送