当我将文件添加到暂存时,我可以
$ git add my_file -p
Run Code Online (Sandbox Code Playgroud)
并选择我想要的舞台.
有没有办法合并/樱桃选择提交并应用块的差异块?
谢谢
在每个关于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 -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警告,这可能会导致严重的隐私泄露.
在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 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) 虽然我不觉得它很烦人或类似的东西,但我只是想知道如何在GitHub上使用桌面版本时指定其中之一summary或description不同commit?如何在终端上使用这两个一起提供git commit?
我对不同目录中的两个文件进行了更改,如何为单个提交添加两个文件。我可以做什么,添加第一个文件,然后将目录更改为第二个文件,然后添加第二个文件,最后执行提交。这行得通吗?
我正在尝试将一个项目从 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) 我一直在 GitHub 上为一个组织的私人仓库做出贡献。组织中没有添加成员,在组织页面显示此消息
\n\n\n该组织没有公共成员。您必须是成员才能查看谁\xe2\x80\x99 是该组织的一部分。
\n
因此,我是该组织的一部分,并且我已经进行了一些提交,并通过 GPD 签名验证进行了验证,但这些提交并未计入我的贡献热图,即使我已经选中了在私人存储库上显示贡献的选项。GitHub 是否会计算您在组织的私人存储库中为热图所做的提交?
\n我需要获取 GitLab 中两次提交之间的差异。我已经阅读了执行此操作的说明,但它们与 GitLab 的 diff 形式不一致。
我必须指定“to”项目的名称(“from”项目与当前项目挂钩)以及“from”和“to”提交。但是当我选择“存储库”>“比较”时,我得到以下信息:
该表单提示我输入“to”项目以及“from”和“to”分支的名称。没有地方可以选择“from”和“to”提交!
即使我按照比较所选分支的不同提交的说明进行操作,我是否可以显示一个仅用于比较不同分支的最新提交的表单?我不这么认为;最后一个按钮标记为“交换修订版本”,而不是“交换分支”。该表单认为它邀请我选择两个提交,但不允许我这样做。
我尝试在“分支”字段中输入提交 ID。GitLab 不会让我这么做。这些字段是下拉菜单。他们让我输入一个值,但这只是分支名称列表的过滤器;当我输入提交 ID 时,GitLab 找不到匹配的分支,并且我无法选择任何内容。
这应该如何运作?