Git 小常识

忽视文件

新建文件 .gitignore ,写入文件或者文件夹,忽视这些文件不提交到远程git 上
如果提交过一次,再添加.gitignore的话会没有效果,此时需要

git rm --cached 要忽视的文件或文件夹

删除文件,再 add,然后commit,之后 .gitignore 就起作用了

git filter-branch --force --index-filter "git rm -r --cached --ignore-unmatch models/"

放弃本地修改,强制拉取更新

  1. restore 重置
    如果你修改了代码,但是并未执行 git add 操作,可直接执行:
    git restore .
    
    . 表示所有文件,如果想重置个别文件,指定文件路径即可
    git restore <文件>...
    
    注意⚠️:如果你已经执行了 git add 操作,此时代码已保存至暂存区,需要先取消暂存区变更:
    git restore --staged .
    
    或者
    git reset .
    
    然后,再执行 git pull 拉取远程代码同步即可。
  2. reset 回退
    reset 比较暴力,相当于 可适用于 代码在工作区、暂存区、仓库区等任何场景,重置后不可恢复🙅‍♂️,对于新手有一定的安全隐患。
    git fetch --all
    git reset --hard origin/master
    git pull   // 这一步为了同步远程代码,不需要的话可不执行
    
    git fetch 指令是下载远程仓库最新内容,不做合并。
    git reset 指令把HEAD指向master最新版本。

reset –hard:重置后不保留暂存区和工作区
reset –soft:保留工作区,并把重置 HEAD 所带来的新的差异放进暂存区(此时代码的变更状态相当于执行完 git add命令)
reset –mixed:reset的默认参数,保留工作目录,并重置暂存区(此时代码的变更状态相当于执行 git add命令之前)

  1. stash 暂存(推荐)
    我比较喜欢的方法,是用stash,暂存代码再同步。

    首先,将所有代码添加至暂存区:

    git add .
    

    然后,将代码临时保存:

    git stash
    

    此时代码会重置到修改前的状态,可以同步远程仓库区,完事儿。

    git pull
    

    同步后,如果还想继续修改原来的代码,可将临时代码恢复至工作区:

    git stash pop
    

    注意⚠️,stash 用法有很多,比如save,push,pop,clear等,需要使用可以查阅 stash 命令

只合并另一个分支指定的 commit

需求:B 分支合并 A 分支指定的commit

  1. 在A分支记下需要合并的 commit id
    git log --pretty=oneline
    
  2. 切换至B分支
    git checkout [B分支]
    
  3. 将多个commit合并至B分支 或 一个一个的合并至B分支
    git cherry-pick [commit-id] [commit-id] [commit-id] ... 
    

参考:https://juejin.cn/post/7267418218611982376

fatal: refusing to merge unrelated histories

命令后加上 --allow-unrelated-histories

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CharlesWu123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值