相关疑难解决方法(0)

git am/format-patch:行结尾的控制格式

我用三个提交创建了一个补丁

git format-patch <revision_three_commits_ago>
Run Code Online (Sandbox Code Playgroud)

这会创建三个我从笔记本邮寄的补丁文件,并在我的桌面计算机上读取邮件(两个都是Windows框).

我什么时候做

git am --3way --ignore-space-change *.patch
Run Code Online (Sandbox Code Playgroud)

补丁适用,但我没有为提交获得相同的SHA1 ID.在修补文件中搜索了一下,我发现台式计算机上的修改后的行结束了LF,而笔记本上的修改后的行(我创建了修补程序)结束了CR LF.

所以,我的第一个念头就是打电话给git am没有--ignore-space-change,但是这给了我一个错误(补丁不适用).

我怎么能告诉git format-patch或者git am如何处理行结尾(msysgit 1.7.4)?

难道我真的拿VIM和更改文件格式UNIXDOS之前,我可以应用补丁?


编辑:甚至没有用VIM修改补丁文件有帮助:我想,set ff=dos一个:%s/^M//g会有所帮助,但事实并非如此!

在我看来,应用补丁应该会产生完全相同的内容,也会产生相同的提交哈希值,就像我从创建补丁的其他repo中提取的那样.我错了吗?

git format-patch

12
推荐指数
2
解决办法
6411
查看次数

为什么git rebase --onto ab,git rebase --onto ba创建了与原始版本不同的SHA1?

假设您有以下修订图,c为当前分支:

c   a
 \ /
  b
Run Code Online (Sandbox Code Playgroud)

git rebase --onto a b 创建以下内容:

    c
   /
  a
 /
b
Run Code Online (Sandbox Code Playgroud)

并且git rebase --onto b a返回到图:

c   a
 \ /
  b
Run Code Online (Sandbox Code Playgroud)

但是,在两次重组之前,c的新SHA1与c的旧SHA1不同.为什么会这样?

git

4
推荐指数
1
解决办法
454
查看次数

预测git commit id并提交包含该提交id的文件

怎么做这样的事情:

  1. 创建包含以下内容:

    $ cat testfile.txt
    此文件将使用以下ID提交:83b90a07620ef578450c40a6d38bacc42de7ad2d

  2. 提交testfile.txt
    $ git add testfile.txt
    $ git commit -m'谢谢'

  3. 执行git log验证预测的提交id:
    $ git log
    commit 83b90a07620ef578450c40a6d38bacc42de7ad2d
    作者:rohit01 < * @ gmail.com>
    日期:2月21日星期五23:46:52 + 0530

基本上,预测下一个git commit id并提交包含该commit id的文件.

git

3
推荐指数
1
解决办法
344
查看次数

标签 统计

git ×3

format-patch ×1