之前的文件都是只有一个分支,我们可以用分支来使得比如某一个稳定版使得它分出来基于这个版本再次开发
可以使用git log --oneline --graph
使得log能以图展示
建立分支
git brach dev git brach # 查看分支 git checkout -b dev # 就不需要手动修改更改分支
git checkout dev # 把指针放到该分支头上
删除分支
git brach -d dev
git commit -am "信息" # 将已存在在仓库里的文件直接加入并提交
dev
分支中的 1.py
和 2.py
和 master
中的文件是一模一样的. 因为当前的指针 HEAD
在 dev
分支上, 所以现在对文件夹中的文件进行修改将不会影响到 master
分支.
我们在 1.py
上加入这一行 # I was changed in dev branch
, 然后再 commit
:
也就是将开发版的版本变为稳定版
首先我们要切换到 master
, 再将 dev
推送过来.
git checkout master # 切换至 master 才能把其他分支合并过来 git merge dev # 将 dev merge 到 master 中
要注意的是, 如果直接 git merge dev
, git 会采用默认的 Fast forward
格式进行 merge
, 这样 merge
的这次操作不会有 commit
信息. log
中也不会有分支的图案. 我们可以采取 --no-ff
这种方式保留 merge
的 commit
信息.
git merge --no-ff -m "keep merge info" dev # 保留 merge 信息
今天的情况是这样, 想象不仅有人在做开发版 dev
的更新, 还有人在修改 master
中的一些 bug. 当我们再 merge dev
的时候, 冲突就来了. 因为 git 不知道应该怎么处理 merge
时, 在 master
和 dev
的不同修改.
如果存在冲突的文本,也就是修改自不同版本的文件,可以手动在报错后的文件进行修改,在使用git commit -am "solve conflict"