关于git的几点疑问
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
- 把master拉取到最新
- show log - 在log中选择已提交的分支,并选中要的那条提交记录
- 右键选择 摘取此提交,进行合并
- 在本地右键-同步,就可以把这个提交同步到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的命令行:GIT 获取文件最初创建及最新修改日期
- 从tortoisegit拿到log信息然后解析字符串,此方法理论可行,目前我通过python脚本解决了我的问题
在我的电脑上,打开的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的几点疑问的更多相关文章
- Git复习(十)之常见报错和疑问
报错 情况一:git pull报错 There is no tracking information for the current branch. Please specify which bran ...
- git远程易错点
git pull下来用git branch -r查看远程分支才有数据 解决方案:指定当前工作目录工作分支,跟远程的仓库,分支之间的链接关系. 比如我们设置master对应远程仓库的master分支 g ...
- git远程从入门到放弃
git pull下来用git branch -r查看远程分支才有数据 解决方案:指定当前工作目录工作分支,跟远程的仓库,分支之间的链接关系. 比如我们设置master对应远程仓库的master分支 g ...
- Git master branch has no upstream branch的解决
Git master branch has no upstream branch的解决 在push代码时,出现“git master branch has no upstream branch”问题的 ...
- 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:/ ...
- js生成二维码/html2canvas生成屏幕截图
1.需求简述 (1) 最初需求: 根据后台接口获取url,生成一个二维码,用户可以长按保存为图片.(这时的二维码只是纯黑白像素构成的二维码) 方案1: 使用jquery.qrcode.min.js插件 ...
- no git binary found in $path(已解决,但是还有疑问)
跟同行研究个项目代码,他把代码打包发我后,我解压到本地,路径和我本地个人项目路径基本相同, 但是当执行npm install时,就报了 no git binary found in $path ,这个 ...
- Git 使用疑问
1) fatal: remote origin already exists. 解决办法 ..$ git remote add origin git@git.*.com:tang/comment_s ...
- Git使用疑问
1.git操作是出现Username for 'https://github.com':的验证问题 Username for 'https://github.com': 输入的是github上的邮箱账 ...
- 多本地代码工作点更新到2个远端GIT仓库
摘要:本文介绍了笔者多个本地工作节点(地方)的多台电脑(PC/笔记本电脑)同步源码到2个远端的GIT(一个GITHUB国外强制公开,一个oschina国内可不公开). 作者:太初 转载说明:请指明原作 ...
随机推荐
- 网络-华为、思科交换机配置TFTP自动备份、NTP时间同步、SYSLOG日志同步
配置使用TFTP进行交换机配置的自动保存 华为设备 <Huawei-sw>sys [Huawei-sw]set save-configuration interval 60 delay 3 ...
- 互联网公司Python高性能编程
虽然Python一直被吐槽执行速度慢,但是架不住简洁的语法和丰富的第三方库使其能够节省开发时间.众所周知在互联网公司中要求频繁的迭代.快速的上线,而Python的优点就特别适合这种需求,所以Pytho ...
- git一个空分支
如果不想要当前创建的分支拥有创建节点之前的内容,就需要一个完全为空的分支,可以参考知乎这篇文章. 使用git checkout -b命令创建的分支是有父节点的,这意味着新的分支包含了历史提交,所以我们 ...
- Linux day2:文件和文件夹相关命令 文件内容编辑命令 Linux常用目录 Linux重要文件
目录 问题说明 前期必备知识 系统运行命令 shutdown -c 快捷方式命令 ctrl+e 目录结构相关命令 mkdir -p 文件和文件夹相关命令 创建文件 touch 查看文件和目录 ls - ...
- Go--命名规则
在Go语言中,项目名和文件名的命名规则有一些建议和惯例.以下是一些常见的规则和最佳实践: 项目名: 项目名应该简短.有意义,并能够清晰地表达项目的目的或功能. 项目名通常使用小写字母,使用连字符或下划 ...
- Vue | vuex安装失败解决的方法实例
Vuex是一个专为Vue.js应用程序开发的状态管理模式 下面这篇文章主要给大家介绍了关于vuex安装失败解决的方法,文中通过图文介绍的非常详细,需要的朋友可以参考下 1.报错信息: npm ERR! ...
- Vue项目利用axios请求接口下载excel(附前后端代码)
https://blog.csdn.net/aSmallProgrammer/article/details/91440793?utm_medium=distribute.pc_relevant.no ...
- freeswitch的mod_xml_curl模块动态获取configuration
概述 freeswitch是一款简单好用的VOIP开源软交换平台. mod_xml_curl模块支持从web服务获取xml配置,本文介绍如何动态获取acl配置. 环境 centos:CentOS r ...
- C#对字符串进行加密解密
首先上效果图 加解密接口 internal string ToEncrypt(string encryptKey, string str) { try { byte[] P_byte_key = // ...
- excel如何自动获取本周工作日的日期显示作为标题(周一至周五)
一.背景: 每周发周报的标题格式为:本周一到本周五的日期内容,如下:但是每隔一周发送的时候需要改一下周报标题里面的日期,比较麻烦目前的需求是通过函数自动化生成,根据当前的日期去定位出本周一的日期以及本 ...