Git的使用


Git的使用

回滚历史版本

git log –oneline

查看历史提交版本

1.git log 查看历史所有版本信息

2.git log --graph 查看历史所有版本,命令行模拟图表展示(好看一点点)

3.git log -x 查看最新的x个版本信息

4.git log -x filename查看某个文件filename最新的x个版本信息(需要进入该文件所在目录)

5.git log --oneline查看历史所有版本信息,只包含版本号和记录描述

6.VI中同时按 Shift + g 展示全部,q退出查看

可以自定义git log的展示内容,以后用 git lg 就行(最推荐)

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --abbrev-commit --"

git mylog
# 效果(带颜色):* 16c8eff - init (2021-11-03 21:01:24 +0800) <Your Name>
# ci换成cr则提交日期,按多久以前的方式显示 例如:1 day ago

# 删除别名配置: git config --global --unset alias.lg

git reset –hard commit号

回滚版本,且丢弃之后所有版本

1.git reset --hard HEAD^,回滚到上个版本

2.git reset --hard HEAD^~2,回滚到前两个版本

3.git reset --hard xxx(版本号或版本号前几位),回滚到指定版本号,会自动匹配

4.git reset --hard xxx filename回滚某个文件到指定版本号(需要进入该文件所在目录)

使用 git push -f 提交更改,(这一步很危险,会产生代码丢失,一定要确定是想要的结果)

如果用git push会报错,因为我们本地库HEAD指向的版本比远程库的要旧

--soft 回退后a分支修改的代码被保留并标记为add的状态(git status 是绿色的状态)
--mixed 重置索引,但不重置工作树,更改后的文件标记为未提交(add)的状态。默认操作。
--hard 重置索引和工作树,并且a分支修改的所有文件和中间的提交,没提交的代码都被丢弃了。
--merge 和--hard类似,只不过如果在执行reset命令之前你有改动一些文件并且未提交,merge会保留你的这些修改,hard则不会。【注:如果你的这些修改add过或commit过,merge和hard都将删除你的提交】
--keep 和--hard类似,执行reset之前改动文件如果是a分支修改了的,会提示你修改了相同的文件,不能合并。如果不是a分支修改的文件,会移除缓存区。git status还是可以看到保持了这些修改。

git revert commit号

新建一个回退了指定commit的修改的新commit.

比如产生了3个版本,想丢弃版本2的修改,并保留版本3的修改,

使用此方法,会生成版本4,此版本4由版本1和3的修改组成.

git reset 和 git revert

git checkout (*)

git checkout commit号 本地跳到指定版本

git checkout master 回到原来的分支

这样就可以自由查看某一个版本的代码了,这种方法正是我要找的。

git 拉取冲突

解决方案:git stash

 git pull

之后手动删除冲突的部分(其中<<<<<<与=====中的代码为服务器改动的代码,=====与>>>>>>中的代码为本地改动的代码)

 git stash pop

拉取代码覆盖本地

git fetch

git reset –hard 丢弃本地所有修改

git commit -m ‘提交信息’ 写错了

git commit --amend -m "新的修改提交信息"

注意,仅仅只能针对最后一次提交

git fetch VS pull

碰到一个问题写一个


文章作者: 罗紫宇
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 罗紫宇 !
  目录