标签: git-commit

按块应用提交块

当我将文件添加到暂存时,我可以

$ git add my_file -p
Run Code Online (Sandbox Code Playgroud)

并选择我想要的舞台.

有没有办法合并/樱桃选择提交并应用块的差异块?

谢谢

git diff commit git-diff git-commit

7
推荐指数
1
解决办法
4565
查看次数

可以将其他数据放入git commit对象吗?

在每个关于git对象的教程网站上,我将看到一个示例,其中git cat-file显示提交对象本身的样子,它通常类似于以下内容:

tree 552acd444696ccb1c3afe68a55ae8b20ece2b0e6
parent 6a1d380780a83ef5f49523777c5e8d801b7b9ba2
author John Doe <john.doe@exampler.com> 1326496982 -0600
committer John Doe <john.doe@exampler.com> 1326496982 -0600

Some commit message here.
Run Code Online (Sandbox Code Playgroud)

如果顶部有其他(单行)数据字段,这会混淆git工具吗?我假设即使没有,这些字段也不会出现在git log中.

如果它可以有其他字段,哪个git plumbing命令可以让你创建它?git commit-tree似乎不灵活.

git git-commit

7
推荐指数
3
解决办法
1291
查看次数

如果丢失,防止git自动生成用户电子邮件

有没有办法全局配置git不自动生成用户的电子邮件,如果没有设置并中止提交?

$ git commit -m "test"
[master (root-commit) 71c3e2e] test
Committer: unknown <my.user@my.very.own.hostname>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
Run Code Online (Sandbox Code Playgroud)

如果提交者不够仔细检查git警告,这可能会导致严重的隐私泄露.

git git-config git-commit

7
推荐指数
2
解决办法
403
查看次数

我怎么能告诉Git提交中发生了什么事情,两个父母没有合并来自第二个父母的更改?

在Gitk中,我可以看到团队成员的提交(X)有两个父母,第一个父母是他自己的先前提交(A),另一个父母包含许多其他人提交(1到5).合并后,其他人(1到5和其他人)所做的所有更改都不再出现在X,B,C等...

A------------
              \
               X - B - C 
              /
1--2--3--4--5
           /
e--r--j--k
     /
l--m
Run Code Online (Sandbox Code Playgroud)

如果我提交X提交A它没有显示差异,如果我将X提交X提交5它显示所有缺少的更改.此外,在提交X,B或C时,git日志不会显示对提交1到5中的文件所做的更改.但是,如果我执行git log --full-history,则历史记录会显示在1中进行的更改到5,但这些更改仍未出现在实际文件中,并且历史记录未显示它们正在撤消.所以git log --full-history似乎与当前文件内容相矛盾.

我与提交X的用户进行了交谈.他说他没有进行重置或拒绝,他说他在相关时间内没有恢复任何提交.然而,他说他确实有时会做一个拉原点大师,导致其他人的变化被放入他的索引或工作树中,好像他已经做出了这些改变而不是这些改变的实际作者.他说,当这种情况发生时,他会做一个新的克隆,并且不会将任何东西从当地的回购推送给主人,因为他认为Git做错了什么.

这两件事是否相关(坏拉和坏合并)?

我怎样才能确切地说出发生了什么,以便我们将来可以避免这种情况?

是什么原因导致Git有时会将从原始主数据中提取的更改放在本地工作目录或索引中,就像它们是本地更改一样?

git git-pull git-merge git-log git-commit

7
推荐指数
1
解决办法
4756
查看次数

如何停止在git中合并?

我有一个三向合并分支合并:

git checkout master
git merge BranchA

>> Fast-forward merge

git merge BranchB

>> Three-way-merge (prompts for a merge commit message)
Run Code Online (Sandbox Code Playgroud)

我的问题是两个:

  • 我怎样才能中止合并?通过三向合并,我向编辑器展示了编写merge-commit消息的位置.但是如果我在没有保存的情况下退出,git将继续进行合并(只是合并提交消息将是默认的,而不是我可以写的但是已中止)

    commit 11111233
        Merge 'BranchB' into master
    
    Run Code Online (Sandbox Code Playgroud)

    虽然,显然没有确认提交消息,我希望合并不会发生(当我不确认正常提交消息时的相同行为)

  • 来自两个合并分支的提交是否按时间顺序排序?或者首先(在git log)我将看到从提交BranchA,从的提交遵循THEN BranchB

编辑

为了更好地解释我做出测试的第二个问题:从分支开始的2个分支(A和B).我在B上提交,然后在A上,然后再在B上,最后再在A上.然后我将BranchA合并为主.然后BranchB成为高手.

但是当我git log掌握时,这就是已经出现的,为什么我问第二个问题:

commit 730fdd4d328999c86fa4d3b6120ac856ecaccab1
Merge: 7eb581b cc1085a
Author: Arthur Conandoyle <Arthur.Conandoyle@live.com>
Date:   Mon Feb 9 21:24:27 2015 +0100

    Merge branch 'BranchB' into …
Run Code Online (Sandbox Code Playgroud)

git merge github abort git-commit

7
推荐指数
2
解决办法
3万
查看次数

GitHub桌面的摘要和描述有什么区别?

虽然我不觉得它很烦人或类似的东西,但我只是想知道如何在GitHub上使用桌面版本时指定其中之一summarydescription不同commit?如何在终端上使用这两个一起提供git commit

github git-commit github-for-mac

7
推荐指数
1
解决办法
5095
查看次数

如何在git中为单个提交添加多个文件?

我对不同目录中的两个文件进行了更改,如何为单个提交添加两个文件。我可以做什么,添加第一个文件,然后将目录更改为第二个文件,然后添加第二个文件,最后执行提交。这行得通吗?

git git-commit

6
推荐指数
3
解决办法
3万
查看次数

从提交历史记录中删除大于 100MB 的文件 - 迁移到 Github 失败

我正在尝试将一个项目从 GitLab 迁移到 GitHub。.dat,.csv,.exe,.pkl存储库大小为 685.83MB,由几个超过 100MB 到 3383.40 MB 的文件组成。它因以下错误而失败。

GitLab To GitHub Migration Steps:-
$ git clone --mirror git@your-gitlab-site.com:test/my-repo.git
$ cd my-repo.git
$ git remote set-url --push origin git@github.com:test/my-repo.git
$ git push

Error
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: File Src/project/label/file1.dat is 476.32 MB; this exceeds GitHub Enterprise's file size limit of 100.00 MB
remote: error: File Src/models/label/file2.dat is 2431.49 MB; this exceeds GitHub …
Run Code Online (Sandbox Code Playgroud)

git github git-commit git-lfs

6
推荐指数
1
解决办法
5984
查看次数

GitHub 是否计算您在组织的私人存储库中所做的提交

我一直在 GitHub 上为一个组织的私人仓库做出贡献。组织中没有添加成员,在组织页面显示此消息

\n
\n

该组织没有公共成员。您必须是成员才能查看谁\xe2\x80\x99 是该组织的一部分。

\n
\n

因此,我是该组织的一部分,并且我已经进行了一些提交,并通过 GPD 签名验证进行了验证,但这些提交并未计入我的贡献热图,即使我已经选中了在私人存储库上显示贡献的选项。GitHub 是否会计算您在组织的私人存储库中为热图所做的提交?

\n

git version-control github git-commit

6
推荐指数
1
解决办法
7905
查看次数

GitLab 提交之间的差异...这是如何工作的?

我需要获取 GitLab 中两次提交之间的差异。我已经阅读了执行此操作的说明,但它们与 GitLab 的 diff 形式不一致。

我必须指定“to”项目的名称(“from”项目与当前项目挂钩)以及“from”和“to”提交。但是当我选择“存储库”>“比较”时,我得到以下信息:

GitLab 提交差异

该表单提示我输入“to”项目以及“from”和“to”分支的名称。没有地方可以选择“from”和“to”提交!

即使我按照比较所选分支的不同提交的说明进行操作,我是否可以显示一个仅用于比较不同分支的最新提交的表单?我不这么认为;最后一个按钮标记为“交换修订版本”,而不是“交换分支”。该表单认为它邀请我选择两个提交,但不允许我这样做。

我尝试在“分支”字段中输入提交 ID。GitLab 不会让我这么做。这些字段是下拉菜单。他们让我输入一个值,但这只是分支名称列表的过滤器;当我输入提交 ID 时,GitLab 找不到匹配的分支,并且我无法选择任何内容。

这应该如何运作?

git-diff git-commit gitlab

6
推荐指数
1
解决办法
5675
查看次数