标签:HEAD git develop merge Git master 分支
目录原理
安装配置
安装
brew install git
配置文件
~/.gitconfig
进行 git 相关的配置
[user]
email = xxx
name = xxx
ssh 配置
~/.ssh/config
Git 管理的目录结构
目录结构
.git
.gitignore
其他文件或目录
.git
用来保存分支,提交的信息,日志等
.gitignore
用来配置当前文件夹下哪些文件不需要管理的
文件状态
Untracked
Modified
Staged
committed
工作区
暂存区
git commit 将暂存区的内容提交到本地仓库
本地仓库
远程仓库
gitlab
分支
目的:
并行开发
远程分支的连线和本地分支的连线是一样的
创建分支
# 创建并切换到develop
git checkout -b develop
# 创建develop,不切换
git branchdevelop
查看分支
git branch -a
git branch -r
HEAD
游离状态的HEAD,HEAD不在某个分支,而是在某个节点,例如通过git checkout hash值
,将HEAD切换到了一个节点上。
在游离状态的HEAD上做提交很危险,可能会找不回来。可以建一个临时的分支
merge
在要作为主分支的分支上进行操作
git checkout master
# 将develop合并到master
git merge develop
merge会新增一个节点,表示merge的过程,并且这个节点会用虚线连接develop,表示包含develop上的东西
rebase
与merge相反,将当前分支的节点间移动到另一个分支的最后,然后再移动主分支,这样更加线性
git checkout develop
# 将develop的节点已经移动到了master
git rebase master
# 将master分支的指针移动到最后
git checkout master
# 因为develop就在master前,所以merge时只是移动HEAD
git merge develop
冲突
冲突如何产生
类似多线程对共享变量的操作
如何解决冲突
修改冲突代码
git add 冲突的文件
git commit
常用命令
git reset
git reset HEAD
git revert
git rm
git diff --cache
git remote -v
git commit --amend
git rebase -i
日志
git relog
Workflow
分支模型
方法 | 描述 |
---|---|
master | 最稳定的分支,只从其他分支合入,不直接做修改 |
develop | 最新的分支,开发的主干,主要用来合并其他的分支(feature,fix) |
feature/xxx | 功能分支,从develop创建,合并到develop |
release | 用来发版的分支,只允许进行一些BUG修复,新功能不要直接合入。合并到master,打上tag |
hotfix | 生产环境发生BUG紧急修复的分支,从master(tag)/release中产生,合并到master(tag)/release |
clone仓库到本地
push
push之前先git pull --rebase
更新一下本地代码,没有冲突再push
或者git fetch
,更新本地的origin/feat,然后合并到本地的feat再提交push
标签:HEAD,git,develop,merge,Git,master,分支 来源: https://www.cnblogs.com/sudopk/p/16332934.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。