标签: git-commit

工作目录和git索引有什么区别?

混帐书定义git的指标:

Git索引用作工作目录和存储库之间的临时区域.您可以使用索引构建一组要一起提交的更改.创建提交时,提交的内容是索引中当前的内容,而不是工作目录中的内容.

但是我仍然很难理解它,特别是突出的声明"所承诺的不是我工作目录中的内容".

到目前为止,在我有限的使用Git的工作,一切都在工作目录始终致力于,如果我这样做:

git add <all new files in the working directory>
git commit -a -m "git will refuse to commit without this comment" 
Run Code Online (Sandbox Code Playgroud)

git然后提交所有修改过的文件以及所有新文件.

那么,实际上,我的工作目录暂存区域?

我不确定git index它是什么以及它如何被解释为临时区域.

你能解释一下吗?

git git-commit git-index

8
推荐指数
3
解决办法
4230
查看次数

如何在git中使用--work-tree选项?我一直在收到错误

我有一个正常的repo,其中有一个工作树和一个.git文件夹在与工作树相同的目录中.

我正在尝试使用该命令从该位置外部运行git命令

git --git-dir=/path/to/repo/.git --work-tree=/path/to/repo pull /some/other/repo master
Run Code Online (Sandbox Code Playgroud)

但我一直在收到错误fatal: /usr/libexec/git-core/git-pull cannot be used without a working tree..

我究竟做错了什么?

git git-pull git-push git-commit

8
推荐指数
1
解决办法
7962
查看次数

如何删除git的提交

我想摆脱远程分支上的一些提交.例如,如果历史记录如下:

A->B->C->D
Run Code Online (Sandbox Code Playgroud)

我想删除C和D给我:

A->B
Run Code Online (Sandbox Code Playgroud)

哪个B现在是HEAD?

git github git-commit

8
推荐指数
1
解决办法
1478
查看次数

Git - .gitignore中的提交文件

我想提交并推送两个新文件,这些文件位于项目的.gitignore中列出的文件夹中.我想我可以只更改.gitignore文件,但后来我需要两次提交:一次提交推送两个新文件,另一次提交重置.gitignore.如果可能的话,我想在一次提交中这样做.

有没有办法提交和推送被忽略的特定文件?

git gitignore git-commit

8
推荐指数
1
解决办法
6609
查看次数

如何将提交重放到已经包含提交的分支上?

让我们说我们的提交历史看起来像

    1--2--3--4
             ^
            HEAD

其中4是最近的提交.

有没有办法将提交2(2和1之间的差异)的更改重播到提交4?

你可能想知道为什么有人想这样做.让我们说这是你的生产分支,总是应该处于工作状态.让我们说早一点,当提交历史看起来像

    1--2
       ^
      HEAD

你有一个实现,并认为提交2可能会破坏一切,所以你迅速推出了一个恢复提交,其中提交3恢复提交2.然后有人使提交4包含你想要保留的好内容.此时您意识到提交2实际上是正常的,因此您希望在4之上重播它.

git git-commit git-branch

8
推荐指数
1
解决办法
5781
查看次数

提交时无法设置refs/heads/master

我昨天能够罚款.但是今天(我没有改变任何东西),当我承诺:

$ git add config.h
$ git commit -m "Update config.h to reset the values"
error: Couldn't set refs/heads/master
fatal: cannot update HEAD ref
Run Code Online (Sandbox Code Playgroud)

我知道在拉或推过程中也可能发生这种错误.但我还没有找到解决方案来修复它.

我的.git/config文件如下所示:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = dotGitOnly
[remote "origin"]
    url = git@SOME_URL
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)

git git-commit

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

进行更改后如何在新分支中进行 git commit ?

我知道启动新分支的命令是

git checkout -b <mybranch>
Run Code Online (Sandbox Code Playgroud)

但是,假设我有先见之明,在进行我想要提交的新更改之前创建了新分支。

但通常情况并非如此。通常,我开始编码,然后可能会也可能不会git add . 想要在新分支中提交。我怎么做?

git git-checkout git-commit

8
推荐指数
1
解决办法
6670
查看次数

如何在没有优缺点的情况下在GitHub中复制部分提交差异?

我经常需要复制并粘贴GitHub提交的一部分.然而,每当我这样做时,我发现自己手动沿着每条线走下去并且击中Delete所有的+/-标志.

有没有更方便的方法将GitHub提交的一部分复制到剪贴板?
欢迎涉及Chrome扩展程序/您的个人项目的建议.

git version-control diff github git-commit

8
推荐指数
1
解决办法
682
查看次数

Git Commit 使用了错误的时区

通常我使用两台电脑,例如:PC1PC2

在他们两个上我都使用CygWinon Windows 10

他们有相同的配置。

我试图PC1对如何显示日期和时间进行一些调整:

$ git log
Run Code Online (Sandbox Code Playgroud)

我正在尝试多个bashandgit命令。

过去和现在PC2我这样做时:

$ date
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

Tue Sep 25 16:17:34 CDT 2018
Run Code Online (Sandbox Code Playgroud)

但在PC1(错误的)上,使用相同的命令,我得到:

Tue, Sep 25, 2018 16:17:34
Run Code Online (Sandbox Code Playgroud)

您可以看到该TimeZone指示器没有显示。

另外,现在PC1,当我进行提交然后用以下命令列出历史记录时:$ git log日期如下:

Date:   Tue Sep 25 22:58:42 2018 +0100
Run Code Online (Sandbox Code Playgroud)

它应该在哪里:

Date:   Tue Sep 25 16:58:42 2018 -0500
Run Code Online (Sandbox Code Playgroud)

因为我当前的时区是:( CDT) America/Chicago( -05:00)

关于如何解决这个问题有什么想法吗?

谢谢!

[编辑1]

回应@Johan …

git bash datetime cygwin git-commit

8
推荐指数
1
解决办法
4775
查看次数

“export GPG_TTY=$(tty)”的签名问题

我正在尝试做什么

我想用 gpg 密钥签署我的 git 提交,export GPG_TTY=$(tty)我的 .zshrc 文件中有该行。当我获取 .zshrc 时,我可以创建签名提交。

我面临的问题

我发现在一段时间后,在 vscode 集成终端(我没有在 iTerm 窗口中尝试过这个)中,我会得到failed to sign commit, make sure to set email, username. 但一旦我再次导出,它就会按预期工作。

我还下载了 gpg 套件,以允许我仍然签署提交,这似乎使这个问题消失了。但我希望在我解决这个问题时将其作为一个临时解决方案。

我不确定什么会导致 GPG_TTY“过期”。

当前配置

我使用的是 Mac,带有 zsh 和 Powerlevel 10k。(这个问题在我开始使用p10k之前就存在)

任何和所有的帮助都是值得赞赏的!

git zsh gnupg git-commit

8
推荐指数
0
解决办法
2万
查看次数