我想知道当我使用 Git VCS 提交时是否有办法不使用计算机时钟。
为什么?原因很简单,在我的一台计算机上我使用 Ubuntu 虚拟机。事实是,当我暂停虚拟机时,时钟就会停止。当我再次运行它时,时钟与我暂停它时相同,所以基本上是过去的。
当我提交时,我是过去提交的,例如,如果我现在提交,那么该提交将被视为昨天晚上 7 点提交。它搞乱了我的行为,就像我昨天而不是今天做的事情一样。
更糟糕的不是简单的提交,而是当我合并分支时,或者更糟糕的是,当我创建分支时,它会弄乱整个本地 git 配置,然后如果我修复时钟,我会收到关于未找到分支或不正确分支的奇怪消息。不管怎样,我正在寻找一种解决方法,让我能够继续暂停我的虚拟机并且不会弄乱 git。
是否有任何命令可以在两个分支中查找文件的共同祖先?
假设有一个文件在两个分支中独立修改。我想找到两个分支共有的该文件的最后一个版本。我相信这可以归结为在两个分支中找到该文件的单父提交。
但是,merge-base 只允许查找提交的父提交,而不是文件。我尝试指定最后两次提交修改各自分支中的文件,但我得到的父提交不在任一分支中该文件的更改历史记录中,这可能是由于提交通常包含的更改超过一个文件。
我对本地 git fork 进行了很多更改,我这样做:
git add -Agit commit -m "commit message"git push到我的起源现在碰巧在我之前的提交和新的提交之间还有其他几个提交(来自其他人)。
我希望看到我在新提交中所做的所有更改并对其进行处理。所以,我愿意
git reset --soft <my previous commit>
Run Code Online (Sandbox Code Playgroud)
它显示了我和其他人修改的文件。
问题:
git diff。我刚刚观察到有!在 git 提交消息触发 zsh 中的事件之前。
不确定是 zsh 问题还是 git 功能。请解释。
我正在将一个存储库从 gitlab 迁移到 github,因为我们的存储库空间不足,而且我们似乎无法扩展它的大小。因此,很自然地,我在 github 上创建了新的存储库,将 ssh 地址添加到本地存储库实例上的现有遥控器中,然后尝试调用
git push --mirror github
Run Code Online (Sandbox Code Playgroud)
让它运行几个小时后,它失败了。在研究了这可能的原因之后,我发现它可能太大而无法一次推送,我应该循环一批提交并一次推送它们。在此过程中,添加 .gitignore 和 .gitattributes 文件的第一次提交一切正常。
然而,就在此时,我们从实际项目中推送文件,并且我们已经推送了对于 github 来说太大但对于 gitlab 来说不太大的文件,因此此时它们并未表示在 LFS 中进行跟踪。
基本上,我想回溯两年的提交,将 LFS 跟踪添加到这些文件中,在添加文件之前插入此提交,然后让它更新剩余的树。
我尝试将 HEAD 重置回该点,使用新的 LFS 数据修改 .gitignore,并在添加文件之前将其推高。然而,当尝试这条路线时,我现在在尝试推送旧提交时遇到错误,因为它说旧提交已过期并且需要拉取。
我所要求的可能吗?
我使用我的个人笔记本电脑进行工作(他们对此很满意),但我注意到我所有的工作提交都使用我的个人电子邮件地址。我不想在我的 git 机器上全局默认使用我的工作电子邮件地址,有没有一种方法可以让我在提交时可以拥有我的个人电子邮件地址用于某些存储库,而我的工作电子邮件地址用于其他存储库?
我不介意重写现有提交的历史,只是继续前进。
即使在设置时,core.autocrlf=true我们仍然看到行结尾提交为 CRLF 而不是 LF (我可以^M在运行时看到该符号git diff和git log -p)
有时,由于不同的开发人员在编辑器中使用不同的设置,这会导致合并冲突。
我们怎样才能在非常活跃的存储库环境中解决这个问题并最大限度地减少未来的冲突?
要修改之前的提交,我可以对分阶段更改运行提交
git commit --amend --no-edit
git push -f
Run Code Online (Sandbox Code Playgroud)
提交已被修改,但提交的时间戳发生了变化......
有没有办法不改变时间戳?就像是:
git commit --amend --no-edit --no-time-change
Run Code Online (Sandbox Code Playgroud) Hemang Joshi@SOLO MINGW64 ~ (add-hemang-joshi)
Run Code Online (Sandbox Code Playgroud)
你好,我是 GitHub 的新手,我想知道这是什么,为什么每次都会显示它,如何删除它?(add-hemang-joshi) 在 GitBash 中为绿色。另请参阅图像。
我尝试使用:
git branch -D add-hemang-joshi
Run Code Online (Sandbox Code Playgroud)
但没有工作并显示错误。
error: Cannot delete branch 'add-hemang-joshi' checked out at 'C:/Users/7386-856
15SG 2913642'
Run Code Online (Sandbox Code Playgroud)
我的git有一个简单的问题:
我在github上的存储库中有这个文件inc.conf.php.我不想从回购中删除他,这是一个基本的配置文件.
现在,在我的本地仓库中,我有自己的配置文件inc.cong.php,我不希望这个文件被提交.
所以我创建了一个.gitignore并在其中添加了inc.config.php.(. gitignore是提交并推送回购)
但是当我更新本地和磁带中的文件inc.config.php时git status:
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: Swindle-Foundation5/inc.config.php
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)
但我不想从github更改存储库中的文件.我怎么能这样做?
git ×10
git-commit ×10
github ×4
clock ×1
commit ×1
git-bash ×1
git-branch ×1
git-lfs ×1
git-merge ×1
git-revert ×1
gitignore ×1
gitlab ×1
line-endings ×1
merge ×1
migrate ×1
oh-my-zsh ×1
push ×1
unstage ×1
zsh ×1