Git 版本控制器的使用
简介:Git 是分布式的版本控制系统,即没有中央服务器,每个人的电脑就是一个完整的版本库。
工作区和暂存区的区别:工作区 就是你在电脑上看到的目录。版本库 工作区的.git目录不属于工作区,是版本库,版本库里面有暂存区,还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。
操作相关:
一、创建版本库:利用终端在某目录下执行 git init 命令,把这个目录变成git可以管理的仓库
二、把文件添加到版本库中:
1、git add . 把修改的所有文件添加到暂存区里面去
2、git commit 告诉git,把文件提交到仓库
3、git status 查看当前目录状况,是否有未提交的文件
4、git diff 文件名 查看这个文件修改了什么内容
三、版本回退:
1、git log 查看提交的历史记录
2、git reset –hard HEAD^ 回退到上一个版本
3、git reset –hard HEAD~100 回退到前100个版本
4、git reset –hard 版本号 退到(版本号)时的版本
5、git reflog 获取所有提交过的版本的版本号
6、git checkout –文件名 把文件在工作区的修改全部撤销,这里有2种情况:
1、修改的文件未放到暂存区,撤销修改就回到和版本库一模一样的状态。
2、已放入暂存区,接着又作了修改,撤销修改就回到添加暂存区后 的状态。
所以 git checkout –文件名 的操作是想要工作区的内容和版本库中一致,假设某文件在工作区中已删除,也可使用 git checkout –文件名 从版本库中将其恢复
四、远程仓库:
给本地仓库创建一个远程仓库并且同步文件,利于多人协作。利用终端在本地的仓库目录下执行 git remote add origin (示例)https://github.com/tugenhua0707/testgit.git,这两个仓库就关联上了。 git push -u origin master 把 本地分支 master 的内容推送到远程仓库中去。 -u 参数是为了让git 把本地master分支与远程master分支相关联,后续提交就不需要了。 git clone 远程仓库地址,可将远程库克隆到本地,Git自动把本地的master分支和远程的 master分支对应起来了,并且远程库的默认名称是origin。 git remote 要查看远程库的信息,git remote –v 查看远程库的详细信息。
五、创建与合并分支:
1、git checkout -b dev 意思是创建一个dev分支并切换到这个分支上
2、git branch 查看所有本地分支
3、git branch -a 查看所有分支(本地和远程)
3、git checkout dev 切换到dev分支
4、master分支上,使用如下命令 git merge dev,就是在master分支上合并dev分支的内容
5、git branch -d dev 删除 本地dev分支
6、git checkout –b dev origin/dev 把远程的origin的dev分支到本地来
六、解决冲突:
1、<<<HEAD指主分支修改的内容,>>>>>fenzhi1 是指fenzhi1上修改的内容 手动修改然后再提交
2、首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
3、bug分支:在开发中,会经常碰到bug问题,那么有了bug就需要修复,在Git中,分支是很强大的,每个bug都可以通过一个临时分支来修复,修复完成后,合并分支,然后将临时的分支删除掉。一些修复bug分支不需要推送到远程去,可以先合并到主分支上,然后把主分支master推送到远程去。
4、git stash 保存工作现场并将其隐藏起来。比如我在dev分支上的修改还没完成,不能提交,但是我又要新建一个分支去做别的更紧急的事,此时可用 stash 指令暂存dev分支上的内容,再回来时用 git stash list指令查看所有缓存,git stash apply恢复,恢复后,stash内容并不删除,你需要使用命令git stash drop来删除。另一种方式是使用git stash pop,恢复的同时把stash内容也删除了。
5、当我执行 git push origin dev 时若是发生错误,此时先用git pull把最新的提交从origin/dev抓下来,然后在本地合并,解决冲突,提交,再推送。