ITPub博客

首页 > IT职业 > IT职场 > Git在工作中的小总结

Git在工作中的小总结

IT职场 作者:aleaf2000 时间:2021-09-09 09:50:14 0 删除 编辑

Git-Pro

自己在工作中常用的git命令行!

Git基本操作。

接下来讲讲一些Git进阶小技巧

提交技巧

当我们要将stage里的修改分多次提交到本地仓库,也就是具体到哪个文件
git commit DefaultYuan.txt -m "fix 具体功能"
如果我们想查看要提交的内容与版本库中的比较,然后进行提交
git commit -v
将工作区和stage中的所有修改的文件一次性提交到本地仓库
git commit -a

这样会默认使用 vi 添加描述,我们也可以在.git/config的core中editor = vim指定编辑器

当然也可以使用-m选项直接添加提交信息

git commit -a -m "fix 具体功能"
有时候我们需要对上一次提交信息进行修改
git commit --amend

也可以后面添加参数-m做到修改

查看状态

查看工作区中所有目录下文件的变动
git status
比较工作区与暂存区的改动
git diff
添加参数--cached,比较暂存区和版本库之间的区别
git diff --cached
添加参数HEAD,比较工作区、暂存区和版本库之间的区别
git diff HEAD

HEAD关键字它指的是当前分支的最新提交,相当于一个指针,后续讲到新建分支也会提到它

stash的使用

有时候我们在工作区进行开发并且不想提交的时候,这时我们又想pull最新代码;或者又想切到另外一个分支上修改紧急bug的时候

git stash可以暂存当前的工作区内容

可以先暂存当前的工作区的内容
git stash

等我们切到另外分支修改完了bug之后,可以切回之前分支

然后恢复之前工作区的内容继续开发
git stash pop
也可以查看stash的Git栈信息
git stash list

当我们的stash栈列表里面有很多,并且我们想要找到对应的版本号

并且将我们想要的版本号为stash@{2}的工作内容取出来
git stash apply stash@{2}
也可以查看版本号为stash@{2}的工作内容
git stash show stash@{2}

当我们的stash栈列表的工作内容都应用回来的时候

可以将栈清空
git stash clear

分支

分支在Git里面是比较廉价的,我们在开发的时候可以在本地仓库创建很多条分支

新建一条名字为dev的分支
git branch dev

这种创建方式会依然停留在当前分支

开发新功能、或者修改bug,我们会创建一条分支并切到新开分支上开发
git checkout -b dev_fixHot
也可以从当前分支新建一个dev分支,指向指定commit
git branch dev f0299e2

f0299e2是随便写的,具体要以我们自己的commit

切换到指定分支
git checkout dev

分支其实也是指向某个commit的指针,HEAD也是一个指针,它指向当前工作目录下的commit

因此checkout就是让HEAD指向dev分支

删除dev分支
git branch -d dev
强制删除dev分支
git branch -D dev
将本地dev分支与dev_fixHot远程分支建立追踪关系
git branch --set-upstream dev origin/dev_fixHot
添加一个dev远程分支
git push origin dev:dev
删除dev远程分支
git push origin :dev

或者

git push origin --delete dev
选择一个commit,合并到当前分支
git cherry-pick f0299e2

合并分支rebase和merge

在工作中,如果团队开发同一个项目的人数特别多的时候,每个人都在自己的分支上开发

在开发过程中,为了使提交记录直观,方便在一条分支上查看提交记录,可以对分支进行衍合,一般是在做了一些小的修改之后会用它

将修改commit到本地分支上之后

当本地分支上有相对应的远程分支,可以直接使用

git rebase

为了方便讲解,origin/dev_homepageFix这个远程分支是随便写的分支名

当这次commit要衍合到dev_homepageFix分支上时

git rebase origin/dev_homepageFix

最后就可以push跟远程仓库同步了

当我们到项目接近尾声的时候,需要将各自的分支都合并到dev分支上去

先抓取最新仓库更新

git fetch

然后切到dev分支上

git checkout dev

再分别合并各个分支,这里以dev_homepageFix分支为例

git merge origin/dev_homepageFix

撤销操作

当我们想去整理我的提交,或者是把不该这次提交的修改提交了,我们可以对修改进行撤销,或者对提交进行撤销

恢复暂存区的所有文件到工作区
git reset HEAD
恢复暂存区的指定的某个文件到工作区
git reset HEAD README.md

我们做了一些修改,然后觉得自己做错了,不想提交

可以重置暂存区、工作区,这样就能与上次提交保持一致,建议不要轻易这么做!
git reset --hard

当我们想重新整理提交的时候,比如说将上两次的提交整理到一次提交,我们可以重置到上两次的上次提交commit

可以重置到指定的commit,并重置了暂存区,但工作区是不变的
git reset 2126dce

这种情况也会引发另外一个问题,当我们本地仓库与远程仓库一致的时候,然后我们重置,就需要用到push的force来进行强推,这是我们不想操作的,后续我会讲解一下强推的小建议!

新建一个commit,用来撤销指定commit,后者所有变化都会被前者抵消,并应用到当前分支

我们也是不要轻易这么去做!

git revert 2126dce

起别名

当我们有比较常用的命令行用的比较频繁,但是我们又觉得完整把它们敲出来费事

可以在 ~/.gitconfig 文件里面进行设置别名,添加alias
[alias]
ft = fetch
ck = checkout
st = status
br = branch
rb = rebase
lg = log

然后试一下git st就管用了!

标签的相关操作

标签可以针对某一时间点的版本做标记,常用于版本发布

列出标签
git tag
创建附注标签
git tag -a v0.0.1-pro -m "pro发版"
切换到标签
git checkout v0.0.1-pro
查看标签的版本信息
git show v0.0.1-pro
删除标签
git tag -d v0.0.1-pro
给指定的commit打标签
git tag -a v0.0.1-pro 9fbc3dd
将v0.0.1-pro标签提交到git服务器
git push origin v0.0.1-pro
将本地所有标签一次性提交到git服务器
git push origin –tags

找回Git中丢失的Commit

在使用Git的过程中,有时候会因为一些误操作,比如reset、rebase、merge等,同时自己的Commmit记录也消失了。
不用慌,我们在Git上做的任何操作都只是在原来之前的操作上做修改,并且会被记录下来保存,也就是说无论你做了什么,对于Git来说都可以进行回滚操作。

找回Commit
这里以git reset --hard为例,如果我们这样操作,提交会消失。
这时我们可以使用reflog查看一下
git reflog
此时会出现这样

99abc5a HEAD@{1}: commit: do something

我们要找回我们这个commit,只需要做如下操作:
git reset --hard 99abc5a
针对不是git reset --hard误操作造成的丢失commit,我们可以使用git cherry-pick 99abc5a来找回代码,核心是我们需要找回丢失的commit



作者:DefaultYuan
链接:https://www.jianshu.com/p/86ef009e5c86


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/381/viewspace-2813180/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Datepicker研究荐
下一篇: 第一次爬虫实例
请登录后发表评论 登录
全部评论

注册时间:2020-07-23

  • 博文量
    0
  • 访问量
    353