一: 删除切换分支操作
1, 删除分支:git branch -d feature1
注意:
(1)如果想要删除某个分支就不能将该分支作为当前分支,需要切换到其他分支进行删除操作;
(2)如果想要删除某个分支,但是该分支未曾合并到master时,操作删除时会报错(提示未合并)
如果确认删除时,将-d更改为-D进行删除操作
2, 切换分支: git checkout ***(分支名称)
3,总结:
branch 的创建、切换和删除:
创建 branch 的方式是 git branch 名称 或 git checkout -b 名称(创建后自动切换);
切换的方式是 git checkout 名称;
删除的方式是 git branch -d 名称。
二: 代码提交操作
1, 当远程仓库存在该分支时,如果要提交该分支的代码更改时,需要
git add .
git commit -m “”
git push
2, 当在本地通过git checkout -b ***(创建新分支名)更改提交代码时,需要:
git add .
git commit -m “”
git push origin ###(新建分支名)
注意:(问题)
我尝试新建一个分支a,将分支a用命令“git push origin a”推上了远程仓。再新增一个commit,执行“git push”命令报错。根据报错,使用“git branch --set-upstream-to=origin/a a”将远程分支a和本地分支a绑定在一起,再次使用“git push”,正确运行。
这说明并不是说远程分支 a 和本地分支 a 一致就可以直接使用 git push 了。本地分支必须和远程分支有一个绑定关系。
三: git 分支merge(合并)操作
(1) 如果在本地的两条分支(主分支和子分支)都有修改内容,此时要将子分支的内容合并到主分支上时,需要先切换到主分支后再执行: git merge ###(子分支名),用来合并子分支的代码,但主分支和子分支的修改文件不是同一个
冲突解决
(2) 如果在分支A和分支B同时修改同一个文件的同一处,此时就会引起冲突
解决:
1, 手动解决
可以看到,Git 虽然没有帮你完成自动 merge,但它对文件还是做了一些工作:它把两个分支冲突的内容放在了一起,并用符号标记出了它们的边界以及它们的出处。上面图中表示,HEAD 中的内容是 移动硬盘(已买),而 feature1 中的内容则是 移动硬盘(不买了)。这两个改动 Git 不知道应该怎样合并,于是把它们放在一起,由你来决定。假设你决定保留 HEAD 的修改,那么只要删除掉 feature1 的修改,再把 Git 添加的那三行 <<< === >>> 辅助文字也删掉,保存文件退出,所谓的「解决掉冲突」就完成了。
2, 放弃解决冲突,取消 merge?
git merge --abort
second git内容学习
代码提交案例
1, 在实际开发中,比如现在需要给移动一级手厅开发个内容,你在原有的主分支的基础上拉去了一个新的分支,然后进行:
git push origin newbranch
git branch --set-upstream-to=origin/newbranch newbranch
2, 然后在编写完代码功能后,执行:
git add .
git commit -m “###”
git push
3, 然后再review代码后需要合并到master分支,操作,将本地新建分支代码合并到远程仓库,
(1)先切换到master分支: git checkout master
(2)然后拉去一下代码: git pull
(3)合并分支: git merge newbranch
(4)推送代码: git push
(5)删除分支: git branch -d newbranch
四。 关于git add的操作
git add . : 来直接把工作目录下的所有改动全部放进暂存区
eg: 如果你再修改一个文件后,执行git add .操作未提交代码,然后又修改了该文件,然后你需要再次执行命令git add .,用来重新提交心脏内容。
比较git add ., git add -A, git add -u的区别:
- git add -A 提交所有变化
- git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
- git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git rebase 详解:
(1) git merge
(2) git rebase
5, 回退:
- git revert HEAD^ 回退上一次commit提交记录
- git reset commit ID: 回退代码到指定的提交记录处