Git情景
基础
创建项目
git clone ssh地址
git init
git config --global user.name''
git config --global user.email''
git config --list
创建分支
git branch test
git checkout -b test
切换分支
git checkout test
查看分支
git branch
查看状态
git status
更新
git pull [远程主机名] [远程分支名]:[本地分支名]
如果省略本地分支,则默认更新到当前分支
如果存在追踪关系,则可以省略后两项
如果存在一个人追踪分支,主机名也可以省略
提交
git commit -m "提交信息"
git commit -amend 修改最一次提交
提交至远程
git push origin master 将本地master分支推送到远程master分支上,若远程不存在master分支,则会新建master分支
git push origin :master 如果省略本地分支名,则相当推送一个空分支名到远程master分支上,相当于删除
git push origin 如果当前分支和远程存在追踪关系,则可以省略远程分支名
git push 推送当前分支到默认远程主机的默认分支上
git push --tag 同时推送标签
gitk rbranch-1 查看push结果
合并分支
merge
git merge test
rebase
git rebase master
step1:寻找当前分支与master分支共同祖先
step2:从共同祖先到当前分支的所有提交逐个应用于master
删除分支
git branch -d test 删除test分支
git branch -D test 强制删除 即使没有和远程分支/跟踪分支 merge
git push origin --delete branch 删除远程分支
查看日志
git log
git log --graph
git log -[length]
git log --pretty=raw 显示tree,parent,author,committer
git log -p 显示不同
git log --grep "关键字" 关键字查询
git log --stat 文件修改统计
git log --since=
git log --after=
git log --pretty=format:" "
%h 简短哈希字串
%p 父对象哈希短串
%an 作者的名字
%ad 修订日期
%s 提交说明
git blame [file] 查看指定文件的提价历史
查看不同
git diff
进阶
查看特定版本
git checkout [版本号 哈希字串]
获取特定提交
git cherry-pick [版本号 哈希字串]
查看特定版本
git checkout HEAD^ HEAD指针向更早方向移动一个版本
git checkout HEAD~[num] HEAD指针向更早方向移动num个版本
移动当前分支位置分支
git reset [版本号 哈希字串]
撤销特定提交
git revert [版本号 哈希字串] [版本号 哈希字串] [版本号 哈希字串]
交互式rebease
git rebase -i HEAD~[num] 用法是这样的,但是我还没用明白