Git
安装设置
查看用户名和邮箱地址
git config user.name
git config user.email
修改全局用户名和邮箱地址
git config --global user.name "your Name"
git config --global user.email "email@ecample.com"
修改局部用户名和邮箱地址
cd ~/you project
git config user.name "username"
git config user.email "email"
基础操作
创建版本库
git init
把文件添加到仓库
git add readme.txt
提交到仓库
git commit -m " wrote a readme file"
查看信息
git status
git diff
版本回退
查看历史记录
git log
git log --pretty=oneline
回到过去
git reset --hard HEAD^
重返未来
git reset --hard 版本号
关电脑了,想回到新版本
git reflog 查看命令历史
撤销更改
丢弃工作区的修改
git checkout -- file
丢弃暂存区的修改
git reset HEAD <file>
删除文件
先手动删除
git rm tesr.txt
git commit -m "remove test.txt"
误删:git checkout -- test.txt
远程库
添加远程库
git remote add origin git@server-name:path/repo-name:git
git push -u origin master
之后 git push origin master
克隆远程库
git clone git@github.com:snowqwl/gitskills.git
创建合并分支
查看分支
git branch
创建dev分支并切换
git checkout -b dev
- git branch dev
- git checkout dev
git switch -c dev
切换分支
- git checkout dev
- git switch master
合并指定分支到当前分支
git merge dev
删除分支
git branch -d dev
分支
解决冲突
查看分支合并图
git log --graph
git log --graph --pretty=oneline --abbrev-commit
分支管理策略
普通模式合并 能看出曾经做过合并
git merge --no-ff -m "merge with no-ff" dev
bug分支
保存现场
git stash
回到现场
git stash pop
在master分支修复的bug,合并到当前dev分支
git cherry-pick <commit>
丢弃一个没有被合并过的分支
git branch -D <name>
多人协作
查看远程库信息
git remote -v
从本地推送分支
git push origin branch-name
推送失败
git pull 抓取远程重新提交
建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name
rebase
git rebase 把本地末push的分叉提交历史整理成直线
标签
创建标签
切换到要打标签的分支上
git tag v1.0
查看标签
git tag
指定标签信息
git tag -a <tagname> -m "baablabla..."
删除标签
git tag -d v0.1
推送标签到远程
git push origin <tagname>
推送全部未推送的本地标签
git push origin --tags
删除一个远程标签
先本地删除 git tag -d v0.9
git push origin :refs/tags/