基础
创建项目
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] 用法是这样的,但是我还没用明白