Git小技巧

本文介绍了Git的三个实用技巧:如何使用stash暂存本地修改,解决分支间的冲突以及如何撤销已提交的commit。通过学习这些技巧,能更高效地管理和维护Git版本库。
摘要由CSDN通过智能技术生成

记录下使用的时候的小技巧

一、暂存(stash)

  1. 公司的代码需要在本地运行,所以有些配置需要在本地修改,但是在提交的时候你又不能一起提交,而且有些时候必须在提交前先恢复这个文件,
  2. 一开始的解决方法就是 git checkout *file,先把文件一键还原,再提交,下次用的时候改,不过这样很麻烦
  3. 学习后:
git stash    //文件的修改内容会被暂存后还原
git stash list  //查看历史暂存信息,例如:stash@{0}: WIP on dev: d7943259 Merge branch 'tiefans' into 'dev'  
git stash pop  //一键还原修改,就会把修改重新写入文件

二、解决冲突(rebase)

  1. 当在一个分支 dev1 下修改了一个文件,同时新建 dev2 分支,同样的地方也被修改,如下:
/branch-dev
......
var name = 'x'
......
/branch-dev1
......
var name = 'y'
......
/branch-dev2
......
var name = 'z'
......
  1. dev1 分支被合并后,再合并 dev2 就会提示冲突,因为他不能找到应该删除的 var name = 'x'这行。
  2. 解决它
git checkout dev
git pull
现在目标分支更新下代码
git checkout branch
再切回自己开发的子分支
git rebase dev
然后在文件中会有提醒,vscode中颜色被标为紫色
修改完后
git add (*file)
git rebase --continue
如果冲突解决,则成功提交,如果失败,则继续修改。
然后继续 
git rebase --continue
......
最后没有问题后
git push origin branch

//当解决成功,git push的时候会提示

error: failed to push some refs to '*.git' 
hint: Updates were rejected because the tip of your current branch is behind                                           
hint: 'git pull ...') before pushing again.                                                                            
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

这时候需要在后面加个参数 git push branch -f

因为在远端仓库会有一个版本,需要在本地解决后强制覆盖远程的版本即可

但是,有时候,在服务器端会出现冲突,只需要 git merge --abort 删除冲突合并请求后 git pull

三、撤销commit

写完代码后,我们一般这样

git add . //添加所有文件
git commit -m '本功能全部完成'

想要撤回已经提交的 commit

git reset --soft HEAD^

HEAD^的意思是上一个版本,也可以写成HEAD~1

如果你进行了2次 commit ,想都撤回,可以使用HEAD~2

参数:
--mixed
意思是:不删除工作空间改动代码,撤销 commit ,并且撤销 git add . 操作
这个为默认参数,git reset --mixed HEAD^和 git reset HEAD^ 效果是一样的。

--soft
不删除工作空间改动代码,撤销commit,不撤销git add .

--hard
删除工作空间改动代码,撤销commit,撤销git add .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值