git rename后查看之前的记录

对于某个文件进行rename之后,使用show log命令查看之前的修改记录都会丢失,通过命令行方式进行mv之后,在tortoisegit中查看记录还是丢失的

git mv 从博客园下载已发布的文章.bat 博客园-下载已发布文章.bat
git commit -m "rename"
git push

解决办法:

今天在tortoisegit中无意中找到办法,对于重命名的文件,在日志信息界面中,选中有更名文件点右键有个选项"显示重命名或复制前日志",就可以查看到rename之前的所有日志。

在totorisegit中无法对某个文件进行目录移动而保留之前的提交记录,比如从A文件夹移动到B文件夹中

以上两项操作都会使用.git目录越来越大

git还原某个错误的push

有一次操作出错,导致把分支所有的提交都push到master中了,主要是这两个分支的代码差别还是非常大的

我的操作方法:

在tortoise中显示日志,还原到某个版本,然后重新push

目前这个操作还有点蒙,经过几番操作才正确撤消我的push

tortoisegit同步分支的某个提交到master

  1. 把master拉取到最新
  2. show log - 在log中选择已提交的分支,并选中要的那条提交记录
  3. 右键选择 摘取此提交,进行合并
  4. 在本地右键-同步,就可以把这个提交同步到master远程

Cherry Pick this Commint翻译为中文:摘取此提交

注意:不要使用右键的合并功能,它差不像tortoisesvn那样可以合并某个提交,而是要使用上述方法

需要图文的可以查看这篇《合并单个commit到指定分支上——tortoisegit cherry pick 的使用》

修改文件日期为git的提交日期

出于我有一个需求,当我在家里的电脑上从git同步我的博客md文件时,新文件的日期是我拉取那天的日期,而当我想按日期排序文件时,很多文件并不能按我在git提交的时间来排序。

通过google查找到某些命令,这条在windows下对于英文命名的文件是可以查询到的,而对于中文命名的文件则会显示乱码,且不会显示日期。

git ls-tree -r --name-only HEAD | ForEach-Object { "$(git log -1 --format="%ai" -- "$_")`t$_" }

于是我就尝试从下面这几个方向解决我的问题

.NET 操作git

可使用的库:LibGit2Sharp

参考资料:

写了一些测试代码后放弃了,因为用.net来操作git比较麻烦

git 命令行

在我的电脑上,打开的git命令行是使用这个工具mingw

[](file:///C:/Users/qing/AppData/Local/Temp/OpenLiveWriter674401182/supfiles40FD0489/image[2].png)

mingw是Minimalist GNUfor Windows的缩写,允许控制台模式的程序使用微软的标准C运行时(C Runtime)库(MSVCRT.DLL),又可以调用windows的API

GNU是一个自由的操作系统,其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标,名称来自GNU's Not Unix!的递归缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。GNU的创始人,理查德·马修·斯托曼,将GNU视为“达成社会目的技术方法”。

python脚本

目前我是使用gitpython操作git,安装命令: pip install gitpython

我测试此方法不能直接拿来使用:通过Python获取最后一次提交Git存储库文件的时间?

最后自己手写python脚本来解决这个问题,开源地址: 修改文件日期为git提交时间.py

关于git的几点疑问的更多相关文章

  1. Git复习(十)之常见报错和疑问

    报错 情况一:git pull报错 There is no tracking information for the current branch. Please specify which bran ...

  2. git远程易错点

    git pull下来用git branch -r查看远程分支才有数据 解决方案:指定当前工作目录工作分支,跟远程的仓库,分支之间的链接关系. 比如我们设置master对应远程仓库的master分支 g ...

  3. git远程从入门到放弃

    git pull下来用git branch -r查看远程分支才有数据 解决方案:指定当前工作目录工作分支,跟远程的仓库,分支之间的链接关系. 比如我们设置master对应远程仓库的master分支 g ...

  4. Git master branch has no upstream branch的解决

    Git master branch has no upstream branch的解决 在push代码时,出现“git master branch has no upstream branch”问题的 ...

  5. git推送代码报错:fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream

    情景再现 远程新建仓库,然后本地 git bash执行以下代码 git init git add . git commit -m 'xxx' git remote add origin https:/ ...

  6. js生成二维码/html2canvas生成屏幕截图

    1.需求简述 (1) 最初需求: 根据后台接口获取url,生成一个二维码,用户可以长按保存为图片.(这时的二维码只是纯黑白像素构成的二维码) 方案1: 使用jquery.qrcode.min.js插件 ...

  7. no git binary found in $path(已解决,但是还有疑问)

    跟同行研究个项目代码,他把代码打包发我后,我解压到本地,路径和我本地个人项目路径基本相同, 但是当执行npm install时,就报了 no git binary found in $path ,这个 ...

  8. Git 使用疑问

    1)  fatal: remote origin already exists. 解决办法 ..$ git remote add origin git@git.*.com:tang/comment_s ...

  9. Git使用疑问

    1.git操作是出现Username for 'https://github.com':的验证问题 Username for 'https://github.com': 输入的是github上的邮箱账 ...

  10. 多本地代码工作点更新到2个远端GIT仓库

    摘要:本文介绍了笔者多个本地工作节点(地方)的多台电脑(PC/笔记本电脑)同步源码到2个远端的GIT(一个GITHUB国外强制公开,一个oschina国内可不公开). 作者:太初 转载说明:请指明原作 ...

随机推荐

  1. SpringBoot 接口并发限制(Semaphore)

    可以使用 JMeter 辅助测试 https://blog.csdn.net/weixin_45014379/article/details/124190381 @RestController @Re ...

  2. Kubernetes(K8S) Pod 介绍

    Pod 是 k8s 系统中可以创建和管理的最小单元, 是资源对象模型中由用户创建或部署的最小资源对象模型, 也是在 k8s 上运行容器化应用的资源对象, 其他的资源对象都是用来支撑或者扩展 Pod 对 ...

  3. explain分析

    explain分析字段:id.select_type.type.partitions.type.possible_keys.key.key_len.ref.rows.rows.filtered.ext ...

  4. 跟着老猫来搞GO,系好安全带,准备发车!

    为什么想要开篇这么一个系列博客主题? 我想有很多小伙伴想要问我这个,其实主要有以下几个原因. 在粉丝面前丢脸了 之前写过几篇关于java分布式系统的一些坑,然后就有小伙伴挺崇拜的,认为老猫啥都会,甚至 ...

  5. vue mutations与actions的区别

    关于 mutations与actions的区别,网上有很多文章,大多是照着vue.js的教程再来一波!!因为最近接手vue项目,自己之前vue的知识点掌握也不深,就此机会把这个知识点再深挖一下. 使用 ...

  6. C++实现简单的日期正则表达式

    简单的日期正则表达式 一个简单的日期解析程序,从yyyy-mm-dd格式的日期字符串中,分别获取年月日. 先设置一个简单的正则表达式,4位数字的"年",1-2位数字的"月 ...

  7. 密集计算场景下的 JNI 实战

    作者:vivo 互联网服务器团队- Wei Qianzi.Li Haoxuan 在 Java 发展历程中,JNI 一直都是一个不可或缺的角色,但是在实际的项目开发中,JNI 这项技术应用的很少.在笔者 ...

  8. vivo 商城前端架构升级—前后端分离篇

    本文主要以 vivo 商城项目的前后端分离经验,总结前后端分离思路,整理前后端分离方案,以及分离过程中遇到的问题及解决方案. 一.前言 vivo官方商城在2015年创建网上商城,开辟网络销售渠道,几年 ...

  9. java基础(4)--javadoc文档与命令

    一.Javadoc文档 javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类.方法.成员等注释形成一个和源代码配套的API帮助文档.也就是说,只要在编写程序时以一套特定的标签作注释,在程序 ...

  10. 每天学五分钟 Liunx 0011 | 服务篇:进程

    1. 进程 程序放在硬盘中,在运行它的时候加载到内存,在内存里程序以进程的方式运行,进程有唯一的 ID ,叫 PID.   写个简单的 Hellow world 程序,让它产生 PID: [root@ ...