Git的使用五:版本回退、提交以及实际应用场景

一、 reset回退

# 查看历史版本
git log		#可以加上 --pretty=oneline 参数 显示比较少的信息。comiit id(即为版本号,一大串的那个)

# 回退到某个历史版本,reset指针回退,
git reset --hard #后面加上某个版本的版本号

# 这时候提交代码会提示当前版本落后
	#On branch master
	#Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
	#  (use "git pull" to update your local branch)
	#nothing to commit, working directory clean

# 强制提交到远程仓库 慎用!!!
git push -f
 

二、revert

# revert是把此次的回退作为新的提交
	git revert commit #后面跟HEAD最近一次 或者版本号
# 直接提交
	git push

三、实际应用场景

情况1:文件已作出修改 但是没进行 add操作 想要还原文件

git checkout 文件名或者目录名 (还原相应的文件或者目录下的文件)

git checkout .    还原全部文件

情况2:文件作出修改 已进行add操作 但是没有 commit 想要删除add

git reset HEAD     撤销全部已提交修改

git reset HEAD filename    撤销对指定文件的修改

情况3:文件作出修改 已进行过 commit 操作但是没有push 想要删除commit

# 查看节点 
git log 

	# commit xxxxxxxxxxxxxxxxxxxxxxxxxx 
	# Merge: 
	# Author: 
	# Date:
	
# reset
git reset commit_id

情况4:文件作出修改已push到仓库

  此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交


git revert HEAD  撤销前一次 commit 
git revert HEAD^  撤销前前一次 commit 
git revert commit-id  (撤销指定的版本,撤销也会作为一次提交进行保存) 
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。

也可以使用reset 

git reset --hard HEAD^     reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。

你可能感兴趣的:(git)