git 文件三种状态与模式
已提交(committed)已提交表示数据已经安全的保存在本地数据库中。
已修改(modified)已修改表示修改了文件,但还没保存到数据库中。
已暂存(staged)已暂存表示对一个已修改文件的当前版本做了标记,便之保护在下次提交的快照中。
*******************************************************************************************
三个分区
工作区:简单理解为电脑能看到的目录。
暂存区:对修改后的文件进行快照,然后添加到暂存区。
git仓库:工作区的一个隐藏目录.git 这个不算工作区,而是GIT的办版本库
***************************************************************************************
完整的git 操作模型
git init (初始化)
git add git01.txt(暂存区)
git status (查看状态)
git commit -m 'git版本库初始化与文件提交操作' (提交到git版本仓库【-m】 备注提交的日志)
git log 查看日志
**********************************************************************************************
git 时光穿梭机
使用git版本控制工具对项目版本进行管理时,通常会对项目不同版本的文件进行查看,项目历史版本,为了版本的切换操作
对于一个项目开发人员,此时对于git的这些命令操作就成为了一项基本技能。
git diff HEAD -- git01.txt (对比git01.txt提交到版本库里面的版本)
git reset HEAD (撤销放入暂存区的文件)
提交的时候不能直接git commit -m,要先git add 文件
********************************************************************************************
git 版本回退
git log -5 --pretty=oneline(git日志简化版本)
git reflog (git 所有日志)
git reset --hard HEAD^ (git 版本回退前一个版本)
git reset --hard HEAD~n (git 版本退回到指定版本n)
git reset --hard 7520 (git 切换到具体版本(未来的版本)(7520是通过日志前面4个字符获取的版本标示符) )
******************************************************************************************************
git 文件删除
git checkout -- git02.txt(误删除文件本地工作目录,可以通过checkout 拉取本地仓库的文件)
git rm git02.txt (删除文件)
git ls-files (查看本地仓库的文件)
******************************************************************************************************
远程仓库
git clone https://github.com/winterbe/java8-tutorial.git(克隆远程仓库代码)
git remote add origin https://gitee.com/guochunjiang/firstgitlab.git (本地仓库与远程仓库绑定只需一次)
git push -u origin master (本地推送到远程服务器)
******************************************************************************************************
git 分支管理
1.主干上拉取分支->dev ->在合并主干master-> 发布上线
git branch(查看分支)
git checkout -b left01 (新建分支)
git checkout master (切换到指定分支)
git checkout -d left01 (删除分支)
git merge left01 (left01分支合并到master主分支)
git branch -m left01 leaf01(修改分支的名称)
-------------------------------------------
分支push 与pull操作
git branch -a (查看本地分支和远程分支)
git push origin leaf01 (推送本地分支到远程)
git push origin :leaf01(删除远程分支)
git fetch (读取远程仓库最新的状态)
git checkout -b leaf02 origin/leaf02(拉取远程具体某个分支并在本地创建分支)
******************************************************************************************************
分支操作冲突出现于解决
本地分支操作冲突
如果合并的时候两个分支冲突了,就直接把分支的内容重新修改了,在走一次 git add ,git commit 流程就可以了。
----------------------------------------------------------------------------------------------
多人协同分支操作冲突
git pull (每次推送前,先去远程仓库拉取最新的代码)
然修改本地的代码,在执行git add ,git commit,然后再git push