最近心血来潮,突然想把自己这些年所学到的东西梳理一下,所以先从Git开始。本文为Git常用命令篇,可为初学者快速查找使用。若对其中一些命令感到迷惑,推荐以下文章进行解惑:
《Git教程》基本涵盖所有git命令,并进行了分类和详细说明。
《廖雪峰Git教程》初学者的入门教程,含视频教学
《Git合并指定文件到另一个分支》合并指定提交请看这里
《Git--分支管理策略(Git flow)》分支管理实战篇,给自己打广告的☺
不向前走,不知路远;不努力学习,不明白真理。有些东西写出来,或许成全了别人,也方便了自己。话不多说,直接开干!
## 全局配置 ##
配置名字和邮箱
git config --global user.name "Some One"
git config --global user.email "someone@gmail.com"
配置命令别名alias
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'
命令变为
git co
git br
git ci
git st
git unstage <file>
## 仓库 ##
初始化仓库
git init
克隆仓库(将远程仓库克隆到本地)
git clone <仓库地址>
关联远程仓库(在本地仓库与远程仓库间建立关联)
git remote add origin <仓库地址>
## 分支 ##
查看本地分支列表
git branch
创建分支
git branch <branch name>
切换分支
git checkout <branch name>
创建并切换到该分支
git checkout -b <branch name>
分支重命名
git branch -m <old> <new>
删除本地分支
git branch -D <branch name>
删除远程分支
git push origin :<branch name>
手动建立本地分支与远程分支的追踪关系
git branch --set-upstream <local branch name> <remote branch name>
合并某分支到当前分支
git merge <branch name>
合并分支代码 保持两个分支提交在一条线上
git rebase <branch name>
## 文件 ##
查看工作区和暂存区的状态
git status
添加指定文件
git add -- <文件/文件夹全路径>
添加修改文件
git add .
提交到本地
git commit -m "这里写备注"
先添加修改再提交
git commit -a -m "这里写备注"
git commit -am "这里写备注"
拉取远程分支但不合并
git fetch
拉取远程分支并合并
git pull
#建立追踪关系后可简写
拉取远程分支并合并
git pull origin <远程分支名>
推送代码到远程
git push
#建立追踪关系后可简写
git push origin <远程分支名>
撤销文件修改
git checkout --<file>
删除没有被track(追踪)的文件
git clean
比较当前文件和暂存区文件差异
git diff
#比较全部
git diff <file>
#比较指定文件
比较两次提交之间的差异
git diff <commit1><commit2>
在两个分支之间比较
git diff <branch1> <branch2>
表暂存区和版本库之间的差别
git diff --cached
git diff --staged
将暂存区指定文件还原至工作区
git reset HEAD --<file>
将暂存区所有文件还原至工作区
git reset HEAD --.
## 标签 ##
查看tag列表
git tag
添加tag至本地
git tag <tag name>
推送tag至远程仓库
git push origin <tag name>
推送本地所有tag至远程仓库
git push --tags
删除本地tag
git tag -d <tag name>
删除远程仓库tag
git push origin :refs/tags/<tag name>
切换到tag
git checkout <tag name>
## 日志 ##
查看日志
git log
每条log只显示一行
git log --oneline
图形化地表示出分支合并历史
git log --oneline --graph
查看命令历史
git reflog
## 合并代码 ##
合并某分支到当前分支
git merge <branch name>
合并某个分支上的单个commit
git cherry-pick <commit>
合并某个分支上的一系列commits
git rebase --onto <branch name> <commit_start>^
合并某个文件
git checkout --patch <branch name> <file name>
合并分支代码 保持两个分支提交在一条线上
git rebase <branch name>
版本回退
回退到上次提交
git reset --hard HEAD^
回退到上两次提交
git reset – hard HEAD^^
回退到指定提交节点
git reset --hard <commit id>
代码收藏
将未提交的内容(暂存和非暂存)藏起来(入栈)
git stash
查看收藏列表
git stash list
删除栈顶stash
git stash drop
删除指定stash
git stash drop <stash编号 如:stash@{0}>
将栈顶stash恢复到工作区并删除该收藏
git stash pop
将指定stash恢复到工作区并删除该收藏
git stash pop <stash id>
将栈顶stash恢复到工作区不删除该收藏
git stash apply
将指定stash恢复到工作区不删除该收藏
git stash apply <stash id>
删除所有缓存的stash
git stash clear
查看指定stash的diff即保存的内容
git stash show
git stash show <stash id>
从stash创建分支
git stash branch <branch name>
撤销提交
撤销本次提交并作为一次新的提交
git revert HEAD
撤销上次提交并作为一次新的提交
git revert HEAD^
撤销指定提交并作为一次新的提交
git revert <commit id>
网友评论