git 基本操作
常用命令
基本命令
git init 把这个目录变成Git可以管理的仓库
git add xxx 将xxx添加到工作区
git commit -m "xxxx" 将已经add到工作区中的提交到stage(暂存)区
git status 查看本地、工作区、stage中的文件状态
git log 查看git 提交日志
git diff xxx 比较xxx在工作区或者stage中最后一次修改于现在文件的不同
git log --pretty=oneline 简单的日志信息
git reset --hard HEAD^ 回到上一个版本,HEAD^^上上一个版本,回到上100个版本HEAD~100
git reset --hard xxxxx 回到xxxxx版本 xxxx是log前面的版本号
git checkout -- xxxx.txt 把xxxx.txt在工作区的全部修改都撤销。
这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
git rm xxxx.txt 删除xxxx.txt文件后需要在git上也运行rm命令进行删除
远程仓库
git remote add origin git@github.com:michaelliao/learngit.git 创建于远程仓库关联 (在github创建仓库后会有提示前面的url可能不准)
git push -u origin master 推送到远程仓库中
git clone https://github.com/hepan/gitskills.git 从远程仓库复制
git remote 查看远程库信息
git remote -v 显示可以抓取和推送的origin的地址,如果没有推送权限就看不见push的地址
git push origin dev 将dev分支提交到origin中
git checkout -b branch-name origin/branch-name 在本地创建和远程分支对应的分支
git branch --set-upstream branch-name origin/branch-name 建立本地分支和远程分支的关联
git pull 从远程抓取分支,如果有冲突先要处理冲突
分支
git checkout -b dev 创建dev分支并切换到dev分支
相当于如下两条命令
$ git branch dev
$ git checkout dev
git branch 查看分支
git branch -d dev 删除dev分支
git log --graph --pretty=oneline --abbrev-commit 图形的方式显示提交
git merge --no-ff -m "merge with no-ff" dev no-ff模式合并分支详解点这里,合并时会创建一个新的commit
stash命令
git stash 将工作区暂时保存
git stash list 查看暂存工作区内容
git stash apply 回复工作区
git stash drop 将暂存的内容删除
git stash pop 回复工作区并删除内容
tag命令
git tag v1.0将当前commit的最新版本打个标签v1.0
git tag xxxx v0.9将xxxx打个标签v0.9
git show v0.9 显示tar v0.9的内容
git tag -a <tagname> -m "blablabla..."可以指定标签信息;
git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
git tag -d v0.1 删除v0.1版本
git push origin v1.0 将v1.0推到远程
git push origin --tags 将未push的tags全部提交到远程
git push origin :refs/tags/v0.9 从远程删除v0.9版本
alias
ci = commit -a -v
throw = reset --hard HEAD
throwh = reset --hard HEAD^