赞
踩
目录
一、Git颜色标识含义
1、Git的log颜色含义
每个标签代表不同的分支,不同分支标签颜色也可能相同的。
- 黄色代表HEAD(黄色只是表示HEAD的位置,当前分支,没其它含意)
- 绿色表示的是你本地(存在的)分支
- 紫色是远程(存在的)分支
a、红色
创建后就没Add到本地Git的,本地库没有
b、蓝色
改动过,没提交远程
c、绿色
2、情况分析
a、黄+绿+蓝
如果你看到一个标志是黄绿蓝,表示当前HEAD、远程、本地,都有这个分支。
b、紫
如果你看到一个提交只有紫色,表示你本地没有这个分支。
c、紫+绿
如果你看到一个是紫色和绿色,表示这个提交是远程分支并且你本地也有这个分支。
d、绿
如果你看到一个提交只有绿色,表示这只是你本地的分支提交。
二、分支合并示例
master下创建四个分支b1,b2,b3,demo
1、b1合并到当前分支demo
2、b2与b3分支合并,再跟demo合并
- 发现少了System.out.println("b1");
- 查看log发现demo分支只有绿色,说明刚刚本地合并分支后忘记提交
- 如下图,但它是我操作后的样子,其实刚刚只有绿色的,相信我!
- 然后demo分支push后,继续切换到b2分支,
- 再次合并远程demo分支,
- 这次就有System.out.println("b1")了,合并即可。
如下图,说明还没push到远程
3、主分支代码更新到其他分支
暂用master,切换到master分支,update一下
添加数据commit,push
更新master分支代码到b2分支
如下图:合并了所有分支代码的b2分支
4、合并dev分支自己的所有代码到test分支
- 首先切换到test分支,右键-git-compare with branch ,
- 选中目标分支,会看到所有test没有的文件,挑选自己的代码merge即可,
- 相比Cherry-pick合并简单不少。
三、常见Git问题
1、暂存代码, pull后合并代码
- 暂存改动stash changes
- pull最新代码,然后unstash changes,
- 解决冲突,如果合并失误也可以挽回
- 常用的环境配置也可以加到暂存,环境切换一键配置
2、撤销已经commit的提交和记录
有时候会出先写错备注的情况,还没push的情况下可以直接撤销的,选择Reset HEAD
Shift+F6输入^即可撤销一次,多个那就多次
3、取消上一次push
如果你已经push了代码,并且想要撤回这个commit,可以通过以下步骤实现:
git push --force
首先,在使用git push命令时,需要加上--force参数,强制覆盖远程仓库上已经存在的commit。命令如下:
git push --force origin <branch_name>
其中,<branch_name>表示你要撤销的分支名称。
git reflog
如果在本地仓库没有回到该commit的上一个状态,需要使用git reflog命令找到该commit的SHA-1值。命令如下:
git reflog
该命令会列出整个Git仓库的提交历史记录,包括HEAD指针所指向的提交和已经被废弃的提交。
git reset
找到要回到的某个commit的SHA-1值,然后使用如下命令回到该commit的状态:
git reset --hard <commit_SHA-1>
其中,<commit_SHA-1>表示要回到的commit的SHA-1值。
git push --force
然后使用之前的推送命令进行推送,添加--force参数,覆盖远程仓库的历史提交记录。命令如下:
git push --force origin <branch_name>
提醒
使用git push --force命令可能会导致远程仓库、其他成员的仓库和历史版本产生不可逆的影响,因此操作时需要谨慎。一般情况下,在工作流中使用git revert命令回滚某个commit,以保证版本控制的完整性和可维护性。
四、往期相关推荐
有用请点赞,养成良好习惯!
疑问、交流、鼓励请留言!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。