我正在参加「掘金·启航计划」
1,正在开发新功能,突然线上来了个紧急 bug。自己刚改的东西很多还没完善。这个时候想切个临时的新分支安排紧急的处理
可以先将文件 git stash
存在本地临时文件中
然后切换新分支
如果想回到自己修改的分支后想看到之前的修改文件
git stash show
展示出来
git stash pop
从栈中出来
git stash # 隐藏,暂存到临时栈
git checkout -b tempBranch # 创建并切换到临时分支
git checkout myBranch # 临时分支开发完成切换到之前分支
git stash show # 展示现在分支的临时栈
git stash pop # 将修改记录从临时栈中pop出来
2,当 git add 之后,突然才发现add 有些不对。想回 add 之前的状态
将文件撤销回到最近一次修改的状态:
单个文件
命令git checkout -- file中的--很重要,没有--,就变成了“切换到另一个分支”的命令,在后面分支管理中会再次遇到git checkout命令
文件file 可以通过 git status
查看 modified知道完整的file
git checkout -- file #回退单个文件 eg: git checkout -- src/App.css
git restore file # 回退单个文件 eg: git restore src/App.css
多个文件
git log --oneline
查看版本号Head^
git reset HEAD^ # 回退多个文件 eg: git reset 589c649
3,git commit 操作完之后,想回退回去
git reset --soft HEAD^ # 回退后保留在已经add这一步,之前修改的文件不变 eg: git reset --soft 589c649
⚠️注意和git reset --hard HEAD^
区别开,hard回到上一个版本,修改过的记录会被删除
git reset --mixed HEAD^ #回退到没有add的时候,和git reset HEAD^效果类似 eg: git reset --mixed 589c649
4,git commit 操作完之后,才发现写错了一些描述,想要重新来写
在上一次commit之后继续
git commit --amend -m "重新书写上一次add new"
git log --oneline
查看你会发现两次的id是不一样的,不过没关系,描述已经修改了。
5,在多人开发中,遇到了不同的开发工具或者开发的版本不同,但是又需要合并到一起的时候,单独提交某些文件git add file
- 如果想要提交,就不要 add . /add all 了
git add src/setupProxy.js
6,如果是临时去帮忙,工作中当过一段时间后,发现推送代码推不上去了,可以看看是不是没有权限了
git remote -v
- fetch代表可以拉取仓库,push代表可以推送。
- 如果没有权限只能拉取的情况下不会显示push