123
返回列表 发新帖
楼主: james9989
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] Git 奇技淫巧 针对面试可能遇到的版本控制问题

   
🔗
cynthiameowmeow 2020-12-31 04:55:39 | 只看该作者
全局:
问这种的公司直接跳过就好了,git是非常糟糕的设计。
回复

使用道具 举报

🔗
韦小崽 2020-12-31 05:17:17 | 只看该作者
全局:
本帖最后由 韦小崽 于 2020-12-31 05:22 编辑
zzh372024750 发表于 2020-12-30 11:06
大家记住。。。学git 的时候,删除comiit,或者什么 force push 啥的别学最安全了。

最常用的命令是 git commit --amend --no-edit的捂脸飘过😂当然只有在这个branch不被其他的branch依赖的时候我才敢这么干,要不然太容易在之后引爆社死瞬间了😂
同意沙发,背命令其实没什么意思。最重要的是要知道git能做什么。具体怎么做,google一下都能搜出来。另外现在不少git客户端其实挺好用的,我之前用的Sublime merge简直神奇,可惜后来跳槽后开始用vscode ssh,和那货没法一起用,只能继续手打命令了TAT

我之前根据自己工作遇到的麻烦总结过一个需要了解的git知识点,大纲如下
- git内的单元:commit, tree & blob
- 怎么把不同的分支捏在一起:3-way merge & rebase (其实还有fast forward不过这个我觉得这个太好理解了就不讨论了)
- git conflicts是如何产生的,又应该如何解决

基本上在Pro Git Book都能找到。对我最有用的是以下这句话(对squash commits同理)
Do not rebase commits that exist outside your repository and that people may have based work on.

另外说一下commit message,我个人觉得一定要带上ticket号(如果有的话)😂很多年以后当有人git blame到那个commit的时候,也许你走了也许你忘了,但是ticket大概还会静静地呆在那里,给后来的朋友们解释前因后果😂

回复

使用道具 举报

🔗
xitan0506 2020-12-31 05:57:36 | 只看该作者
全局:
非常好的git帖子
回复

使用道具 举报

🔗
肥颓 2020-12-31 06:16:25 | 只看该作者
全局:
zzh372024750 发表于 2020-12-30 11:06
大家记住。。。学git 的时候,删除comiit,或者什么 force push 啥的别学最安全了。
...
just don't do it.
回复

使用道具 举报

🔗
sprayfly 2020-12-31 09:15:59 | 只看该作者
全局:
本帖最后由 sprayfly 于 2020-12-31 09:17 编辑

我几年前在入职之前也看过一些git操作的视频,但是不经常使用的一些边边角角很快就忘了。。。其实最基本的流程掌握好就可以应付绝大多数情况,比如git clone, git checkout, git status, git branch, git add, git commit , git pull, git push 等等,如果是使用的github,熟悉一下如何处理pull request。 如何git pull 之后fix conflicts等等。其实这些命令也不简单,他们的参数都很多,变化多端,要根据你们组的情况使用,比如
```
git pull [--ff]
git pull --rebase
```
你们组用的是ff 还是要求rebase呢? 这个和下边的git rebase, git merge都会影响history...

稍微高级一点的操作,比如git stash, git rebase, git merge, git reset等可以根据需求去学习使用,比如我们组要求对同一个merge(pull) request, 只能有一个commit, 这就要使用rebase 在本地对commits先进行squash再push。git log, git diff, git show也是非常有用。

git fork我从来没用到,不过也就是一个基本流程,要用的时候看看就上手了。
此外,对于release, 可以选择git tag 或者 git branch,取决于QA 以及是否长期支持. 当然这2者之间也有转换的办法。

还有很多时候git 命令用在自动化CI中,比如使用git diff 输出HEAD HEAD~1 两次commit之间的改动文件,然后做语法检查,等等。

暂时就想到这些,我觉得最好的方法还是learning by doing... 先动手,遇到问题再去查,慢慢就熟悉了。自己没事做做实验。





回复

使用道具 举报

🔗
ovarer 2020-12-31 09:17:13 | 只看该作者
全局:
较个真,有些编辑器撤销是可以退到3天前的,比如vim开了persistent undo后的:earlier 3d。jetbrains系列的local history应该也可以。这些偶尔在git救不回来的时候有奇效。另外我当时学git进阶点技巧看的是 https://learngitbranching.js.org/,推荐下,可以了解原理更容易学。

另外也可以熟用工具减少工作量。推荐lazygit,快速rebase/cherry pick很方便。不熟悉git命令的话推荐装个fzf-tab,输入一半按tab有subcommand和说明的补全。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表