git基础(五)

实验: 分支在合并的时候产生冲突和如何解决冲突(非常重要 )
	1.模拟冲突场景 (每个分支对同一个文件的同一行有不同的实现,分支合并就会在文件中产生冲突 )
		冲突的前提:
			两个分支的commit 在“同一个阶段”合并的时候可能产生冲突
	2.解决冲突
		在master 分支上合并 dev分支
		git merge dev	
			/*
				自动合并 a.txt
				冲突(内容):合并冲突于 a.txt
				自动合并失败,修正冲突然后提交修正的结果。
			*/
		解决冲突:
			
			vi a.txt
				/*
					111111
					<<<<<<< HEAD (master)
					hello master
					=======
					hello dev
					>>>>>>> dev	
				*/
			git add . // 不是将冲突的文件添加到暂存区,告知git 冲突解决
			git commit -m '冲突已解决'
			
			dev分支也指向于最新的解决完冲突的版本 
			git merge master	 //不会产生冲突因为两个分支的commit 阶段不在同一个阶段

版本穿梭 (在多个版本之间切换操作)

场景: master 分支多个版本提交
	git add .
	git commit -m ''
	合并上面两个命令 //但是 合并命令不能适用于第一次的版本提交 
	git commit -am '注释'	
版本后退
	git reset --hard HEAD^ 后退一个版本 
	git reset --hard HEAD^^ 后退两个版本
	git reset --hard HEAD~n 后退n个版本
	
版本前进	
	git reflog  记录所有的git操作日志 (借助良好的日志习惯)
	git reset --hard sha1 	

版本回退

# git rm --cached <file>
# 恢复暂存区的指定文件到工作区
$ git checkout [file]

# 恢复某个commit的指定文件到暂存区和工作区
$ git checkout [commit] [file]

# 恢复暂存区的所有文件到工作区
$ git checkout .

# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
$ git reset [file]

# 重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard

# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
$ git reset [commit]

# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
$ git reset --hard [commit]

# 重置当前HEAD为指定commit,但保持暂存区和工作区不变
$ git reset --keep [commit]

# 新建一个commit,用来撤销指定commit
# 后者的所有变化都将被前者抵消,并且应用到当前分支
$ git revert [commit]

# 暂时将未提交的变化移除,稍后再移入
$ git stash
$ git stash pop

游离操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值