一般一个项目有一个默认的分支 master 主分支,然后可以有许多个分支,在别的分支上的操作不会影响到主分支。使用git branch查看当前多多少分支以及当前处于哪个分支上;执行git branch 分支名称 创建分支;执行 git checkout 分支名称 切换当前分支。
使用 git branch -d 分支名称 删除分支 使用git branch -m 当前分支名称 新分支名称 修改分支名称
laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master) $ git branch * master laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master) $ git branch slave laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master) $ git branch * master slave laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master) $ git checkout slave Switched to branch 'slave' laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave) $ git branch master * slave laoni@DESKTOP-TPP
在分支上提交做的修改,不会影响到master分支,可以这么做,把原有master分支的源码下到本地,然后创建新的分支,把自己修改后的代码commit到新分支上。
eg:在slave分支commit info.py文件,然后再切换到master分支
切换到master分支后查看提交的记录没有add info.py 文件内容也消失了。(如果是新建的文件,那文件也会消失。)
git merge 分支名称 合并分支,最理想的状态是被合并的分支(slave)里的文件,是当前分支(master)没有的,这样就完全没冲突。
$ git checkout slave Switched to branch 'slave' laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave) $ git branch master * slave laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave) $ ls 456 bb.css dd.css index.html info.py laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave) $ cat info.py asdfsadfsfasfasdf laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave) $ git checkout master Switched to branch 'master' laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master) $ ls 456 bb.css dd.css index.html laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master) $ git merge slave Updating c5b475a..a068c80 Fast-forward info.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 info.py laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master) $ cat info.py asdfsadfsfasfasdf