今天开始学习git,记录下git的一些常用命令
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
第一次安装git后,通过如上命令告诉git自己的姓名和邮箱
git init
该命令用来初始化一个git仓库
git add 文件名
该命令用于把对于文件的"修改"放到"暂存区"
git commit -m "描述信息"
该命令用于把暂存区的所有修改提交到当前分支,其中-m后边是本次修改的说明,建议不要省略
git status
该命令可以查看仓库当前的状态,比如是否有修改
git diff "文件名"
该命令可以查看对于文件修改的详细信息。
git log --pretty=oneline
该命令可以显示提交的日志信息,pertty=oneline告诉git把信息在一行输出,方便查看
git reset --hard HEAD^
该命令可以回退工作区到上一个提交的版本,HEAD永远指向当前分支的最新版本,HEAD^则表示上一个版本,HEAD^^上上一个版本,HEAD~100前100个版本
git reset --hard commitid
该命令指定回退工作区到指定的commitid的版本,commitid不用写全
git reflog
该命令可以显示每一次操作的信息,包括commitid,操作类型,修改内容等等
git diff HEAD -- "文件名"
该命令用来查看工作区中版本与当前分支中最新版本的区别
git checkout -- "文件名"
该命令用来撤销对于工作区文件的修改,将其恢复到当前分支中的最新版本
git reset HEAD "文件名"
该命令用于将暂存区的修改撤销,回退到工作区
git rm "文件名"
git commit
上述命令用于将版本库中当前分支中的文件删除
git remote add origin git@github.com:github账号/github仓库名.git
该命令用于将本地仓库与github中的仓库关联起来
git push -u origin master
该命令用于将本地版本库中的内容推送到与本地关联的远程版本库中,-u表示将本地和远程的master关联起来,以后推送就不用再输入-u了
git clone git@github.com:github账号/仓库名.git
该命令用于将远程github仓库克隆到本地
git checkout -b "分支名"
该命令用于创建并切换到一个新的分支,即将HEAD指针指向新分支的指针,相当于git branch+git checkout 的组合
git branch
该命令可以查看所有分支,并在当前分支上标记上一个*号
git merge "分支名"
该命令用于将指定分支合并到当前分支
git branch -d "分支名"
该命令用于删除指定分支
git log --graph --pretty=oneline --abbrev-commit
该命令可以查看分支合并图
git merge --no-ff "分支名"
合并分支时,不使用fast forward模式,而是一个创建新的commit
git stash
将当前工作区的修改暂时"冻结"起来,工作区是"干净的"
git stash pop
将工作区"冻结"的修改恢复到"解冻"状态,并删除"冻结"的修改.
git stash list
查看"冻结"列表
git branch -D "分支名"
强行删除一个未合并的分支
git branch --set-upstream "本地分支名" origin/"远程分支名"
将本地分支和远程分支关联起来
git checkout -b "本地分支" origin/"远程分支"
在本地创建和远程分支对应的分支
git pull
从远程分支抽取最新版本到与其关联的本地分支中
git tag "标签名"
给当前分支打一个标签
git tag
查看所有标签
git tag -a <tagname> -m "blablabla..."
可以指定标签信息
git push origin <tagname>
推送一个本地标签到远程
git push origin --tags
推送所有本地标签到远程
git tag -d <tagname>
删除一个本地标签
git push origin :refs/tags/<tagname>
删除一个远程标签
git config --global alias."别名" "真名"
给git的操作命令起一个简写名,例如git config --globas alias. st status,那么以后git st就代表git status