幸福飞过海 - git
https://fengqi.me/tag/git/
-
恢复git push -f丢失的提交
https://fengqi.me/unix/602.html
2021-12-17T09:33:00+00:00
如果有人本地仓库比较新,让他暂时不要更新,并 git push -f,然后你拉取并合并即可,同时吸取教训,将重要分支设置为保护,如果是在线修改或没人拉取最新代码,能否恢复取决于远端仓库是否执行gc,否则神仙也救不回来了。以没有gc过为例,登录到远程git服务器,并找到仓库所在目录,以我使用的gitea为例,gitlab类似:git clone /home/git/gitea-repositories/fengqi/exmaple.git rescue
cd rescue
# 查找丢失的提交,如果没有输出commit表示没救了
git fsck --lost-found
Checking object directories: 100% (256/256), done.
Checking objects: 100% (31/31), done.
dangling commit 558aac381bc8acb161447686361928e2e2edc9bf
dangling blob 82f865770e1590763574a60d53286f2102f6b03b
dangling blob d912156bec00a9f00850ab2ec3a3baf1016c2141
dangling blob f02e11383e55a7f7ac33d8dc6554ce4901e55a64
# 查看内容
git show 558aac381bc8acb161447686361928e2e2edc9bf
git checkout branch_xxx
git rebase 558aac381bc8acb161447686361928e2e2edc9bf
# 这里可能提示和远端不一样导致push失败,可以fetch后rebase,也可以pull,看你喜好
git push branch_xxx因为原始信息只在远端,如果你没有权限登录到git远程仓库,大概率也没救了。
-
[分享] SSH和Git共享22端口,适用于docker或者frp转发等
https://fengqi.me/unix/558.html
2021-05-17T10:13:00+00:00
先说下我的使用场景:我有一台跑在腾讯云上的VPS,就是此博客系统所在的机器,这台机器是有公网IP的在我家里的内网,有一台4核16G的小型服务器,没有公网IP,运行Proxmox VE虚拟了各种服务,其中包括Gitea我通过frp转发暴露内网的Gitea到公网在这之前我一直使用HTTP协议上传或者下载代码,现在觉得太麻烦想用SSH协议如果你跟我的场景类型,此文很适合你,如果你是同一台机器上docker和宿主机之间22端口共享问题,文末官方文档更适合你。本文也是参考了文末官方文档的实现,但是有部分不太一样。[...]
-
[转载]Git 忽略 chmod 更改
https://fengqi.me/unix/407.html
2015-09-02T17:38:00+00:00
利用git来进行web开发的时候,通常涉及到文件权限的更改是不需要让git变更的。所以我们需要让git来排除chmod更改。我们打开shell, cd到git根目录,执行命令: git config core.filemode false然后我们再来执行git status就会发现少了很多需要变更的文件建议设置到全局, 命令改为: git config --global core.filemode false今天被一个同事一次提交近300个文件的更改(全部chmod...)吓到了, 提交前也不对比下, 不过 Gitlab 居然没有卡死.参考: Git忽略chmod更改
-
[记录]Gitlab 在安装完成后才启用 HTTPS 记得重新清理 assets
https://fengqi.me/unix/210.html
2014-11-03T08:32:00+00:00
不然浏览器就会提示:与 git.fengqi.me 的连接采用 128 位加密技术。但是,此页中包含其他不安全的资源。他人能在传输过程中查看这些资源,攻击者也可以进行修改,从而改变网页的外观。该连接使用 TLS 1.2。该连接使用 AES_128_GCM 进行加密和身份验证,并使用 ECDHE_RSA 作为密钥交换机制。重新清理生产 assets 就好了:cd /home/git/gitlab
sudo -u git -H bundle exec rake assets:clean assets:precompile cache:clear RAILS_ENV=production
刷新浏览器.
-
[转载]VIM使用小技巧-重新载入文件
https://fengqi.me/unix/159.html
2013-10-11T03:41:00+00:00
原文地址: VIM使用小技巧-重新载入文件有时候要使用VIM打开了一些文件,但是在其他地方把次文件改动了,例如使用git进行checkout等操作,需要重新载入此文件。1 重新载入当前文件::e
:e! #放弃当前修改,强制重新载入
2 重新载入所有打开的文件::bufdo e 或者 :bufdo :e!
:bufdo命令表示把后面的命令应用到所有buffer中的文件。
参考网址:Refresh all files in buffer from disk in vim, Run a command in multiple buffers
-
轻松搭建git服务器
https://fengqi.me/unix/53.html
2011-08-09T17:33:56+00:00
最近svn频繁出怪问题, 也可能是我vps不行吧(512MB内存, 出问题时的负载不足1, 内存120空闲...), 实在忍不住, 干脆换git了, 下面把摸索出来的东西记录下, 只简单说下而已..个人怎么使用我就不说了, 如果你刚接触git也可以参考文章末尾我提供的参考文档; 这里只说下git服务器的搭建, 下面的内容都建立在我认为你已经大致会使用git init, git add, git commit等简单命令的基础上.另外关于认证方式, 我们选择单用户, 多证书的方式, github就是如此, 因为是ssh访问, 不可能每个人在服务器上有一个用户, 关于几种认证方式请参考文章末尾我提供的参考文档, 那下面我们开始吧.[...]