前言
在工作中需要对代码进行版本控制, 公司使用git进行版本控制, 花费了两天时间对git进行了学习, 现整理一些常用的git命令。
Git常用命令
git log
查看提交历史记录git reflog
查看命令历史
- 回退
- 在工作区修改(指的是已经被追踪的文件)了但是还没add,
git checkout -- 文件名
或git stash
和git stash clear
- 已经添加add,但是还没有commit,
git reset HEAD
文件名(这样就会把暂存区的文件返回到工作区,接着使用步骤1的方法撤销即可) - 已经添加暂存,也commit了
- 使用
git log
查看提交历史记录,找到你提交错误的那次,然后找到它的钱一次的commit idgit reset --hard commitId
- 使用
- 已经push了,但是想要修改刚提交的commit信息
场景:提交了一个commit信息,也push 到远程了,但是此时想要修改提交的message信息,必须是最近一次的
git commit --amend
此时出现窗口修改commit message信息,git push origin 分知名 -f
- 已经push了,而且不小心commit和push好几次,但是你现在没有任何改动了,此时就无法直接用
git rebase
了,但是想把commit提交合并成一次,git log
查找该分支的第一次提交commitIdgit reset --soft commitId
(–soft 和 –hard的区别就是 –soft是软回退,会将你这次commitId之后的提交全部回退到暂存区中,–hard会将你这次commitId之后的提交全部清除掉)
- 在工作区修改(指的是已经被追踪的文件)了但是还没add,
- 提交前做的事情,完成一项任务之后
git add 文件 git commit -m "fsd" git fetch git rebase origin/develop 解决冲突。。。。(git rebase --continue) git push -f origin 分支名 () 解决
- git 缓存的常用方法
- git stash
- git stash pop
- git stash list
- git stash apply stashId //从列表中获取,但是该stash还存在与list中
- git stash drop stashId //从列表中删除
- git stash clear //删除列表
- 将git log中的某一次提交合并的一个分支上,
使用场景:例如我把一次提交合并到分支a了,然后将分支a(基于develop创建的)请求合并到develop,但是此时你发现要把该分支的合并倒master
- 创建新的分支b(基于master分支创建)
- 找到你那次提交的commitId号
- git cherry-pick commitId(在b分支下执行)
- git push 到远程分支上
-
发送merge 请求到master
- 更改分知名(用于没开issue号,但是想先做)
git branch -M hotfix-job-sync-blocked-member(旧分支名)(空格)hotfix-649(新分知名)