[编程基础]日常工作中Git常用操作 & 相关知识

一、回滚指定版本

  • git log --pretty=oneline 会将每个提交放在一行显示,在浏览大量的提交时非常有用
    命令.png
    结果.png
  • git reset --hard commitId ( -- hard 是将文本文件 也进行回滚, 否则只有git 指针进行回滚)
    硬回滚.png
    结果.png
  • git reflog 看操作记录
    image.png
  • git log -p 查看 提交内容

二、合并分支到 release

  • 拉取release到本地
  • release: git pull origin 待合并分支
  • release: git push origin release

修改分支名

git branch -m oldName newName

A 合并本地分支B

git merge B

删除远程分支A

git push origin :A
删除远程分支.png

stash操作

  • git stash pop 恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。
  • git stash pop --index 恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
    --index.png

区别 在于后者 对于原存放在暂存区的内容,仍旧恢复至暂存区

  • git stash pop stash@{1}恢复指定的进度到工作区。
  • git stash save 'message...' 可以添加一些注释
    image.png
    结果.png

撤销 commit

  • git reset HEAD^ 等同于 git reset --mixed HEAD^,不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
    image.png
  • --soft 不删除工作空间改动代码,撤销commit,不撤销git add .
    image.png
  • --hard 删除工作空间改动代码,撤销commit,撤销git add .
    image.png
  • git stash 部分文件
    git stash -p 是一个交互式命令, 使我们可以一个文件一个文件的遍历。
    遇到我们需要stash的文件,我们就y,不需要stash需要commit的文件,我们就n,如果接下来没有需要stash的文件,则直接q退出就行.

修改 commit

git commit --amend
image.png

终止合并

git merge --abort

合并log( 合并多个commit)

git执行merge request时commit太多即不美观也影响查看提交log和版本回退
解决办法:在git提交时合并多次Commit。

1)准备合并下面的三项
image.png

2)选择合并commit的数量

执行 git rebase -i HEAD~n,这里n为要合并的commit的次数,如果我们要合并当前3个,n就是3,如果要合并当前5个commit,n就是5
image.png
image.png

3)合并commit
执行命令后可以看到刚才提交的3次commit已经出现,这里pick代表选中,这里需要pick一次commit,对另外两个commit执行squash操作,squash翻译为压入,塞入,合并

a. squash选择对应要合并的commit, :wq保存
image.png

b.合并并退出
image.png

c. 此时的git log
image.png
image.png

常见误操作

有 A、B两个分支同时开发, 开发前需用测试环境测试, 于是 两者都需要合并到release上;

现在 A先合并到release上, 然后应该是 B 合并到release, 但是B误操作,将release 合并到B分支上, 然后B分支发现有A分支的代码, 于是在B分支上将 A分支代码删除, 然后重新合并B分支到release, 测试后 B分支先上线, 于是 =====》 A分支状态变为merged 。

这是我自己手写的鸭,转载前先点个赞 给个鼓励哈~~~

你可能感兴趣的:([编程基础]日常工作中Git常用操作 & 相关知识)