【预警*** 前端菜鸟***仅作记录使用***不对的地方请多指正**】
之前一直用sourcetree 管理项目,用起来确实很方便,但是到了其他电脑上git 的命令却不是很熟悉,很尴尬,今天我来总结一下那些开发中常用的git命令,让自己好好记一下, 以后争取两种方式都游刃有余。
参考了大佬的文章
以一个完整的项目开发流程为例
上班领导扔给你一个git 地址,不要慌,深呼吸,然后装作很会的样子。
第一步,把项目克隆到本地
- git clone giturl地址
第二步,克隆完一个项目,在开始写代码之前,需要新建一个分支
(1)先看看自己在那个分支上
- git branch 【列出所有本地分支,并且可以看到自己在哪个分支上】
(2)再看看都有哪些远程分支, 是否有自己可以用的
- git branch -r 【列出所有远程分支】
(3)最好的选择,是直接查看全部分支
- git branch -a 【可以清楚地看到每个分支的情况,包括远程和本地的,以及自己所在的分支】
(4)如果远程分支没有你可以用的,那么你需要新建一个自己的分支
- git branch feat-login 【新建一个名字叫feat-login的分支】
(5)切换到刚才新建的分支
- git checkout feat-login
(6)或者你可以直接新建并切换到新建的分支
- git checkout -b feat-login
(7)分支已经新建成功,接下来你可以确认一下是否新建成功,再次执行,查看分支状态
- git branch -a
(8)好了,现在你可以打开编辑器写bug了
第三步,写了一会代码,领导要review你的代码,你需要提交一下你的工作成果
(1)检查一下你的代码,看一下你都更改了哪些文件
- git status 【显示所有变更文件】
(2)确认完毕你改动的文件之后,将文件暂存
- git add . 【 暂存全部】
(3)不过如果你不想暂存了
- git restore --staged feat-login 【把某个文件取消暂存, 这个在执行上个命令的时候,会提示这个命令】
(4)检查了一次没问题,提交到本地仓库吧
- git commit -m 登录功能 【-m 后面表示这次的提交说明,本次写了登录功能】
(5)提交完,你想看看你提交的对不对,到底有没有提交成功
- git log -1 【显示上一次提交,也可以-5 显示5次提交记录】
(6)看起来没问题, 然后可以提交到远程仓库啦
- git push --set-upstream origin feat-login
(7)这样本来远程没有你新建的同名分支,现在就有了。
第四步,等领导review完你的代码,等挨骂吧~ ,不幸的消息,刚才新建的分支已经删了,所以你要改review之后的代码,还得重新新建分支,同样别慌
(1)因为远端有一个分支,是你刚才push的,同时也是leader reivew过后的,所以不需要你新建分支,你需要拉去远程的分支,在此基础之上改代码
(2)先看看都有哪些分支
- git branch -a
(3)拉取指定分支
- git branch --track feat-login 远程分支名 【远程分支名 一般是origin/XXX】
(4)执行完之后,再看看当前分支和状态,切换到自己需要的分支
- git branch
- git status
- git checkout feat-login
(5)恭喜你,现在你可以继续写bug了
(6)写了半天你忘记了,你的分支是从哪个分支拉出来的了, 尴尬,赶紧执行下面命令看一下
- git branch -vv
第五步,代码写得好好的,好家伙,产品来了另一个需求,但是你刚才写的代码显然不能扔掉,也不值得提交,所以需要存储一下,以备后用
(1)存储到本地吧
- git stash 【存储到本地】
(2)怕自己忘了写的什么功能?不妨给存储的内容取个名字
- git stash save 登录功能手机号码验证
(3)插入的任务完成,是时候重新写刚才暂停的工作了,恢复暂存的内容
- git stash pop
(4)不过如果有很多stash暂存的代码,你就需要选一个了,先看看都有哪些存储的内容
- git stash list
(5)选一个你需要的,根据名字就可以应用某个分支
- git stash apply stash@{0}
参考了以下内容:
(6)继续写代码,重复上述提交的流程即可。
第六步,整个项目完成,是时候删除无用的分支了
(1)切换到其他分支,删除feat-login,在当前分支上不能删除当前分支
- git branch -d feat-login
(2)如果你在提交merge request 的时候没有选择【Remove source branch when merge request is accepted.】这个时候你需要手动删除远程分支
- git push origin --delete feat-login 【delete 后面的是分支名称,不是origin/feat-login】
(3)还有一个命令是我经常用到的,有时候远端有很多很多分支,有些已经在远端删除了,但是 git branch -a 还是会显示,所以这个时候我们就需要把本地一些没用的、已经删除了的远端分支删除
- git remote prune origin
~~~持续更新中