Git笔记

2020年2月22日

Push remote branch to a given sha

如图,我想要把origin/master移动到8ff881。

不能用简单的push命令,它会把origin/master push到local master (dafac0)的位置。应该用命令

git push origin 8ff881:mastergit push origin 8ff881:refs/heads/master。注意,如果要创建新的远程分支,必须用有refs/heads/的语法。

还原子模块工作树的修改

问题现象:TortoiseGit日志窗口的工作树变更显示子模块已修改。右击该子模块,还原,但修改仍然存在。

修复方法:

git submodule update --init

如何查看提交中是否包含重命名或复制?

$ git log --name-status -M -C -1  
commit c04ecb6edd602a8463b5239a5fde900b2b3 (HEAD -> 256818)
Author: gqqnbig <gqqnbig@gmail.com>
Date: Wed Nov 15 10:45:17 2017 -0800

Extract controls from ReviewApplication.aspx so that they can be reused in viewSummary.aspx.
BugzID: 256818

M Xpress/LoanApp/App_LocalResources/ReviewApplication.aspx.pl.resx
M Xpress/LoanApp/App_LocalResources/ReviewApplication.aspx.resx
M Xpress/LoanApp/ReviewApplication.aspx
M Xpress/LoanApp/ReviewApplication.aspx.vb
A Xpress/inc/App_LocalResources/ReviewApplication.ascx.resx
C067 Xpress/LoanApp/ReviewApplication.aspx Xpress/inc/ReviewApplication.ascx
A Xpress/inc/ReviewApplication.ascx.vb

这个命令要求查看最近一条提交(-1),并启用重命名(-M)和复制(-C)检测。

结果显示ReviewApplication.ascx是ReviewApplication.aspx的复制,相似度67%。

如何查看复制或移动的文件的diff?

如果只查看某一提交里某一文件的diff,则运行

git difftool c04ecb^:Xpress/LoanApp/ReviewApplication.aspx c04ecb:Xpress/inc/ReviewApplication.ascx

如果查看某一提交的所有文件的diff,则运行

git difftool -M -C --find-copies-harder c04ecb^ c04ecb

选择性贮藏

git stash -p

本文原发表于2018年4月10日。