Git
远程仓库
添加远程库:
git remote add origin git@server-name:path/repo-name.git // 关联一个远程仓库,如:$ git remote add origin git@github.com:ChrisLeejing/learngit.git
git push -u origin master // 第一次推送master分支的所有内容
git pull --rebase origin master // 推送之前,进行合并
git push origin master // 以后每次本地修改更新后,推送最新修改
从远程库克隆
$ git clone git@github.com:ChrisLeejing/gitskills.git // 以SSH方式克隆
$ git clone https://github.com/ChrisLeejing/gitskills.git // 以Https协议方式克隆
分支管理-创建与合并分支
git branch // 查看所有分支(当前分支以‘*’标记)
git branch <name> // 创建分支(如:git branch dev)
git checkout <name> // 切换分支
git checkout -b <name> // 创建切换分支(如:git checkout -b dev)
git merge <name> // 合并分支到当前分支上
git branch -d <name> // 删除该分支
分支管理-解决冲突
git log --graph // 查看分支合并图
git log --graph --pretty=oneline --abbrev-commit // 查看分支合并缩略图
分支管理-分支管理策略
git merge --no-ff -m "注释" dev // 合并后的分支有历史记录,而Fast-Forward合并之后,分支没有历史记录
分支管理-Bug分支
git stash // 隐藏分支工作现场,为修复bug准备
git stash list // 查看有哪些分支隐藏的工作现场,为恢复工作现场做准备
git stash apply // 恢复工作现场,但不删除存储的stash内容,结合git stash drop进行删除
git stash drop // 删除存储的stash内容,恢复到隐藏前的工作现场
git stash pop // 恢复到隐藏前的工作现场,相当于git stash apply和git stash drop
git stash apply stash@{0} // 可以多次stash,通过git stash list查看所有的stash,然后可以恢复到指定的隐藏的工作现场
Feature分支
注:当添加一个feature时,最好新建一个分支:git checkout -b <name>
git branch -D <name> // 强行删除一个没有被合并到主分支的分支
多人协作(最好结合工作场景理解)
git remote -v // 查看远程库详细信息
git push origin dev // push本地dev分支到远程dev
git push origin master // push本地master分支到远程master(时刻保持同步)
git pull // 将最新的pull/dev(master)爬下来
git checkout -b branch-name origin/branch-name // 在本地创建和远程分支对应的分支
git branch --set-upstream-to=origin/<branch> dev // 建立本地分支和远程分支的关联
Rebase
git rebase // 将本地未push的分支提交整理成直线,利于查看
标签管理
创建标签
git tag <tagname> // 创建标签
git tag // 查看所有标签
git tag <tagname> commitId // 为某次提交创建指定标签
git show <tagname> // 查看指定标签具体内容
git tag -a <tagname> -m "v0.1 released" commitId // 为某次指定的提交创建标签,同时添加标签注释
git tag -d <tagname> // 删除某个标签
git push origin <tagname> // 推送某个标签到远程库
git push origin --tags // 一次性推送所有标签到远程库
git tag -d v0.9 // 删除远程库标签(第一步:删除本地库标签)
git push origin :refs/tags/v0.9 // 删除远程库标签(第二步:从远程库删除标签)
自定义Git(这里只是简单入门)
git config --global color.ui true // 让Git显示颜色
忽略特殊文件
忽略某些文件时,需要编写.gitignore文件,文件本身要放到版本库中,Git可以对.gitignore做版本管理!(注:不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore)
配置别名
git config --global alias.st status // 将st作为status的别名,以后就可以git st查看暂存区与工作区的状态了(还有类似co:checkout, ci:commit, br:branch,–global:是针对于当前用户起作用的,如果不加,则只针对于当前仓库)
cat .gitignore // 查看当前文件所有配置信息(包括别名信息)
搭建Git服务器(暂时用不上,用的时候,再复习一下)