git使用高级教程

摘自微信公众号:https://mp.weixin.qq.com/s?__biz=MzU1NTg0MzMwMg==&mid=2247483712&idx=1&sn=c89aeac2620dadc1829cd4d4f1038f2a&chksm=fbcf6ac9ccb8e3df929d5631e98923c5a0be6a94889f0b58f2e87e07f42791c42da54552767d&scene=27&ascene=0&devicetype=android-26&version=2700033a&nettype=3gnet&abtest_cookie=BAABAAoACwASABMABAAjlx4AV5keAM6ZHgDZmR4AAAA%3D&lang=zh_CN&pass_ticket=9lOSHFEPi%2FBfnwQrxYqpqLtiULQjuTaK8IThDnW8CiLuaev%2F8mlbsLQoAcYyi4QD&wx_header=1

 

上2篇说了,git基本的和常用的操作,这一篇来讲一下git的高级操作

 

高级操作就是出现特殊情况的时候,才会用到的指令,所以要慎用,如果用错了,问题也很大

 

特殊情况1

我们发布的版本上线以后,出现问题,想立马回滚到发布之前的版本。

 

git reset <想要回到的commitId>

        = git reset --soft <想要回到的commitId> 

(--soft是默认的,加不加是一样的)

这个指令是把版本回退到指定的commitId

git log

查看提交的commitId,git log显示不完,光标显示在冒号的位置,按方向键上下翻,按q会退出

我们回退到指定id的版本,这个时候,回退的代码会被放到工作区间

有是变成红色的代码,git reset回退版本时,回退的代码是保留下来的,被放到工作区间,git reset --hard就是把回退的代码直接删除掉,不会保留下来,这个指令很危险,一般不用。

 

git push -f 

把刚才reset以后的版本推到远程,也覆盖掉远程仓库的最新的2个提交,回退远程的版本, -f参数强制覆盖远程,这样就可以把线上的版本给回退了

 

 

git stash

把git的的未提交的代码,工作区间和暂存区中的代码,保存到Git的栈中,意思就是把我没写好的代码先放到一边,待会再用,因为你代码没提交,切分支是比较危险的,甚至不能切换分支的

他叫你先提交修改,但是我们没写好,不能提交,就可以使用git stash,把代码先放到一边,过会再使用,怎么查看保存到哪里了呢,怎么拿出来呢

git stash save '注释'

可以给stash加注释,清除存储的是什么代码

git stash pop stash@{0}

挑选任何指定stash弹出,而不是弹出最新的

git stash drop 

删除最新的stash

 

 

git cherry-pick 

挑选指定的commitid来合并

git merge 会把分支上的新提交都会合并到master主分支上,但是有的时候我们并不想合并所有的新提交,而是挑选几个commitid合并

我们现在只想把test2和test4的提交合并到master上

 

git cherry-pick 

 

好,今天的高级教程就讲到这里,git的教程基本就讲完了,还有一些生僻 的指令,如果自己有需要,可以自己学习

 

摘自微信公众号

### Intellij IDEA 和 Git 结合使用高级教程 以下是关于 IntelliJ IDEA 中 Git 高级功能的一些详细介绍: #### 1. **Git Stash 的使用** 在多人协作开发中,`git stash` 是非常实用的功能之一。它允许开发者临时保存当前的工作状态而不提交更改,从而可以切换分支或者拉取最新代码而不会引发冲突[^2]。 ```bash # 将当前未提交的修改存入暂存区 git stash # 查看所有的stash记录 git stash list # 应用最新的stash并保留stash记录 git stash apply # 应用最新的stash并删除该stash记录 git stash pop ``` 通过这些命令可以在不影响工作流的情况下处理紧急任务或更新远程仓库的内容。 #### 2. **解决代码冲突** 当执行 `git pull` 操作时可能会遇到代码冲突的情况。IntelliJ IDEA 提供了直观的界面来帮助用户解决这些问题。一旦检测到冲突,IDEA 会自动打开一个比较窗口显示差异,并提供选项让用户选择如何合并文件。 - 手动编辑冲突区域后标记为已解决。 - 利用工具栏中的按钮快速接受本地版本或传入版本。 #### 3. **交互式 Rebase (Interactive Rebase)** Rebase 可以让历史记录更加整洁有序。而在交互模式下进行 rebase,则能进一步定制化提交的历史顺序与内容。这有助于清理不必要的中间提交或将多个小改动压缩成单一逻辑单元[^1]。 操作方法如下: ```bash # 开始一次针对最近三次提交的互动rebase过程 git rebase -i HEAD~3 ``` 之后按照提示编辑脚本完成相应调整即可。 #### 4. **Cherry-pick 特定提交** 如果只想把某个特定分支上的某次提交应用到另一个分支上而不是整个系列的话,“cherry pick”就是为此设计的操作。此特性同样可以通过图形界面上右键菜单找到对应项轻松实现。 #### 5. **配置忽略文件 (.gitignore)** 合理设置 .gitignore 文件对于项目管理至关重要。它可以防止敏感数据泄露以及减少无意义对象进入版本控制系统之中。IntelliJ 支持直接创建标准模板或是手动输入规则两种方式定义哪些类型的文件应该被排除在外。 ```plaintext # Example of a typical .gitignore file content *.log temp/ build/ ``` 以上便是几个较为重要的 intellij idea 关于 git高级技巧介绍;当然还有更多细节等待探索学习!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值