[编程基础]日常工作中Git常用操作 & 相关知识
回滚指定版本
- git log --pretty=oneline 会将每个提交放在一行显示,在浏览大量的提交时非常有用
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/3d00369c550c49d1b5cf31b641656fc7.webp)
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/4b8777f6d89842ba9024f081ec3671d2.webp)
- git reset --hard commitId ( -- hard 是将文本文件 也进行回滚, 否则只有git 指针进行回滚)
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/bce846346ad64aa2bfbef955d1129420.webp)
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/1e435088462e404da1acb166eb63330e.webp)
-
git reflog 看操作记录
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/c53a8109995244b4bd7a200e7adab751.webp)
-
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
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/7984ef474176449599c3a086a5835501.webp)
stash操作
- git stash pop 恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。
- git stash pop --index 恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/a58154af87d143408b4d24b5e408d7b8.webp)
区别 在于后者 对于原存放在暂存区的内容,仍旧恢复至暂存区
- git stash pop stash@{1}恢复指定的进度到工作区。
- git stash save 'message...' 可以添加一些注释
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/ed54c53b6b6044269d1561d67aeb60df.webp)
撤销 commit
- git reset HEAD^ 等同于 git reset --mixed HEAD^,不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/f6969ff2195241da93f732a6711ba499.webp)
- --soft 不删除工作空间改动代码,撤销commit,不撤销git add .
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/4b23e36796a8486f985910f7c533eac6.webp)
- --hard 删除工作空间改动代码,撤销commit,撤销git add .
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/62821e4a6cd64f02b34ceeb42fb0e936.webp)
- git stash 部分文件 git stash -p 是一个交互式命令, 使我们可以一个文件一个文件的遍历。 遇到我们需要stash的文件,我们就y,不需要stash需要commit的文件,我们就n,如果接下来没有需要stash的文件,则直接q退出就行.
修改 commit
git commit --amend
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/38a9fabfdf4d45758217eae3ae8435e7.webp)
终止合并
git merge --abort
合并log( 合并多个commit)
git执行merge request时commit太多即不美观也影响查看提交log和版本回退
解决办法:在git提交时合并多次Commit。
1)准备合并下面的三项
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/12a5f972cc434616ad51cdb92488a550.webp)
2)选择合并commit的数量
执行 git rebase -i HEAD~n,这里n为要合并的commit的次数,如果我们要合并当前3个,n就是3,如果要合并当前5个commit,n就是5
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/60d8aa231df44c6eadd0ea16e0823a53.webp)
3)合并commit
执行命令后可以看到刚才提交的3次commit已经出现,这里pick代表选中,这里需要pick一次commit,对另外两个commit执行squash操作,squash翻译为压入,塞入,合并
a. squash选择对应要合并的commit, :wq保存
b.合并并退出
c. 此时的git log
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/a4a83a5643604088b67e33e3461c7d85.webp)
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/b156d91b702f4643a3a164bb3ee9080d.webp)
远程与本地分支删除同步
-
git branch –a 用来查看所有的分支,包括本地和远程分支 git remote show origin 来查看有关于origin的一些信息
![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/d5405249659d4adaa043e919ee2128d9.webp)
远程分支删除,但是本地分支还在, 比如删除bugfix/tag-style分支后,再使用
git remote show origin查看:![[编程基础]日常工作中Git常用操作 & 相关知识](https://static.blogweb.cn/article/a1f8a678257648e8b0b8148f6d72de43.webp)
此时可以使用git remote prune origin 移除这个分支。(也就是说可以刷新本地仓库与远程仓库的保持这些改动的同步)`
常见误操作
有 A、B两个分支同时开发, 开发前需用测试环境测试, 于是 两者都需要合并到release上;
现在 A先合并到release上, 然后应该是 B 合并到release, 但是B误操作,将release 合并到B分支上, 然后B分支发现有A分支的代码, 于是在B分支上将 A分支代码删除, 然后重新合并B分支到release, 测试后 B分支先上线, 于是 =====》 A分支状态变为merged 。
这是我自己手写的鸭,转载前先点个赞 给个鼓励哈~~~
转载自:https://juejin.cn/post/7032219506005147656