git教程:
git config –global user.name “your name”
git config –global user.email “email@example.com”
git init :初始化
git status :查看状态
git diff :查看修改的内容
git add filename :把文件添加到仓库
git commit -m “describe content” :提交版本库里
git log –pretty=oneline 退到哪个版本
git reset –hard HEAD^ (HEAD^上一个版本,HEAD^^,多个HEAD~100)(在linux中使用)
git reset –hard commitId的缩写
git reflog 用来记录你的每一次命令 未来的哪个版本
区别:工作区,版本库(stage(or index)的暂存区,master分区(head指针指向))
git diff HEAD – readme.txt 命令可以查看工作区和版本库里面最新版本的区别
git checkout – filename 丢弃工作区的修改 1.如何已经提交到暂存区 和暂存区一样
2.没有就和版本库一样
删除文件:git rm fileName 1.从版本库中删除 2.误删 恢复git checkout – fileName
git remote add origin git@github.com:michaelliao/learngit.git 添加远程仓库
git push -u origin master
git clone url :克隆
分支:
HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支
创建和合并:
git checkout -b dev :创建dev分支,然后切换到dev分支
==git branch name + git checkout name
git checkout branchName 切换分支
git branch 查看分支
git merge dev dev分支的工作成果合并到master
Fast-forward:快速模式
git branch -d branchName 删除分支
解决冲突:
<<<<<<<,=======,>>>>>>>标记出不同分支的内容
创建多个分支,每个分支都有修改,提交,合并时必须手动修改
git log –graph –pretty=oneline –abbrev-commit 查看合并情况
不用fast forward
git merge –no-ff -m “merge with no-ff” dev 不使用fast forward 合并分支,需要提交commit自动的
master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
git stash 当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list 查看现场
恢复:1.git stash apply 但是恢复后,stash内容并不删除,你需要用git stash drop来删除
2.git stash pop 恢复的同时把stash内容也删了
恢复指定的stash
git stash apply stash@{0}
多人协作:
要查看远程库的信息,用git remote
git remote -v 更加详细的信息
团队其他人只能git master
要这样创建dev git checkout -b dev origin/dev
查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
使用pull出现there is no tracking informat
建立本地分支和远程分支的关联,使用git branch –set-upstream-to=origin/develop develop
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突
标签:别名
git tag tagName
git tag 查看所有标签
git tag v0.9 6224937 对应的commit id是6224937
创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -a v0.1 -m “version 0.1 released” 3628164
git show 查看标签信息
git tag -d tagname 删除标签
git push origin –tags 一次性推送全部尚未推送到远程的本地标签
推送某个标签到远程,使用命令git push origin
命令git push origin 可以推送一个本地标签;
命令git push origin –tags可以推送全部未推送过的本地标签;
命令git tag -d 可以删除一个本地标签;
命令git push origin :refs/tags/可以删除一个远程标签。
git branch -D 强行删除
unknown revision or path not in the working tree.