标签: git-commit

恢复已添加到索引但随后通过git reset删除的文件

我在索引中添加了一些文件但是后来我用它删除了它们git reset --hard.我该如何恢复它们?这是发生的事情:

  1. 我添加了所有文件 git add .
  2. 然后我承诺了
  3. 当我检查状态时,仍然有来自add的提交中没有包含的文件,这很奇怪
  4. 我再次添加了未跟踪的文件,这次工作正常
  5. 但我希望一切都在一次提交中,所以我抬头看看如何取消我刚刚提交的内容
  6. 我用过git reset --hard HEAD^- 很明显,所有文件都被删除了
  7. 所以我常常git reflog找到我离开的地方
  8. 那时我常常git reflog ______回到上一次提交.
  9. 然后我常常git reset HEAD取消提交(我应该最初做的)但是我提交后添加的文件(见上文)仍然没有.

如何获取这些文件?

git git-add git-reset git-commit git-reflog

10
推荐指数
2
解决办法
5562
查看次数

在提交之间移动文件

我有两个相应的提交,在本地历史的某个地方,并且一个文件被错误地添加到第二个.我想解决这个问题.

我不明白我应该如何使用交互式rebase.我做了git rebase -i HEAD~10并选择用文件编辑提交,以便从那里检查出来.我使用git guit但是,在提交区域看不到任何文件.我可以选择修改之前的提交然后我看到文件.但是,我无法将错放的文件添加到之前的提交中,因为我没有看到当前提交中的文件开头.

git git-commit

10
推荐指数
4
解决办法
9224
查看次数

如何查看git子模块指向哪个提交

据我所知,如果你在git中添加一个子模块,那么它指向该子模块中的某个提交.

是否有任何方法可以查看子模块指向哪个提交而不检查它?

git git-submodules git-commit

10
推荐指数
4
解决办法
3046
查看次数

10
推荐指数
2
解决办法
927
查看次数

处于分离头状态时如何保存更改?

与Git合作,我不得不回到特定的提交.我做了一些更改,现在我想提交它们.这样做的正确方法是什么?

我的项目现在处于分离-HEAD状态.如果我提交,我的更改是否会被保存

git commit
Run Code Online (Sandbox Code Playgroud)

?否则,我该怎么做才不会丢失我的更改?

git git-commit git-detached-head

10
推荐指数
3
解决办法
5539
查看次数

显示导致冲突的提交的作者和提交消息

我有两个长期运行的分支机构dev,还有一个远期未来的版本future.我们通过从显示错误的标记分支,修复它,然后打开两个分支的拉取请求,为受支持的版本创建修复程序.如果'future'分支中存在冲突,我们的开发人员应该创建一个新的分支,解决冲突,并为未来打开另一个PR.

不幸的是,我们的团队足够大,以至于还没有大量的第二个PR.我现在需要弄清楚哪些确切的提交会导致冲突.我可以通过在每个冲突的文件上运行git blame来手动执行此操作,并查看该======行的每一侧的提交,但这实际上并没有给我足够的信息,我必须为每个冲突和每个文件手动运行git blame .

有没有更简单的方法?理想情况下,我想要的东西相当于:

Commit X: <coworker1> I updated something.
Commit Y: <coworker2> Something fixed.
Conflicts: 
   some/file/here
   a/different/file.
Run Code Online (Sandbox Code Playgroud)

对于每一次冲突.

虽然只是给我提供冲突提交列表的任何内容都足以保证赏金.

git git-commit

10
推荐指数
2
解决办法
520
查看次数

从 git 历史记录中删除并完全删除提交

我的 git 历史中有一个提交

1.commit 4930da17d8dd23d650ed38435d8b421816a0c451
  Date:   Sat Dec 5 14:34:18 2015 +0530

2.commit e1ebbbb599ee20ebec3ca92c26266d9fd16e7ccc
  Date:   Sat Dec 5 13:22:20 2015 +0530

3.commit 1c4a11a80eb054d24dafec2efed0b0282188e687
  Date:   Sat Dec 5 12:11:50 2015 +0530

4.commit b4ab3c164a3a8d93e0a71a94b5c561cb5e20ebf6
  Date:   Sat Dec 5 12:09:56 2015 +0530

5.commit 167b1d10258381f09663ce61fa88ce3bbcd404c4
  Date:   Sat Dec 5 12:09:21 2015 +0530

6.commit c61bcadac673e1c83f4c14b66d56e23b12fa3198
  Date:   Sat Dec 5 12:07:58 2015 +0530
Run Code Online (Sandbox Code Playgroud)

在第三次和第四次提交中包含错误的代码,但我在不知不觉中提交并推送了。

3.commit 1c4a11a80eb054d24dafec2efed0b0282188e687
  Date:   Sat Dec 5 12:11:50 2015 +0530

4.commit b4ab3c164a3a8d93e0a71a94b5c561cb5e20ebf6
  Date:   Sat Dec 5 12:09:56 2015 +0530
Run Code Online (Sandbox Code Playgroud)

但第五次和第六次提交包含正确的代码。我需要这个承诺才能工作。

5.commit 167b1d10258381f09663ce61fa88ce3bbcd404c4
  Date: …
Run Code Online (Sandbox Code Playgroud)

git push github post-commit git-commit

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

提交签名解决了什么问题或威胁?

我们使用GitHub,我们有一个执行提交签名的请求.在研究了这个过程之后,我不清楚提交签名解决了什么问题.据我了解这个过程,有一个"本地源代码"被提交到一个"本地仓库",被推送到"远程仓库".因此,有三个框和两个箭头创建从本地源文件到远程存储库的有向图.对于最终用户,流程是相反的.

在所描述的模型中,似乎我们希望授权在推送到远程仓库时发生; 并且提交签约几乎没有任何好处.

Git SCM手册,7.4 Git工具 - 签署您的工作并未说明它正在解决的问题.但它确实告诉我要寻找答案:

每个人都必须签名

签名标签和提交很棒,但如果您决定在正常工作流程中使用此标记,则必须确保团队中的每个人都了解如何执行此操作.如果你不这样做,你最终会花费大量时间帮助人们弄清楚如何用签名版本重写他们的提交.在将此作为标准工作流程的一部分采用之前,请确保您了解GPG以及签名的好处.

我假设Git工程师已经模拟了Git工作流程.他们发现了一个问题(或问题),他们放置了"提交签名"安全控制来修复它.我想知道他们通过"提交签名"确定了哪些问题并解决了.

我认为发生的事情是人们将身份验证与授权或代码完整性混淆/混淆.不幸的是,尽管愿意这样做,但身份验证不是授权或代码完整性.

git提交签名解决了什么问题?

git sign git-commit

10
推荐指数
1
解决办法
3110
查看次数

Git从别人的叉子里拉出来

我们是两名学生在我们的在线存储库(不同的回购)上工作,这是从一个共同的上游回购分支.

假设其他学生在特定分支上进行了更改,提交并推送到他的回购.

  1. 如何将这些更改提取到我自己的本地存储库中?

  2. 我是否需要提交并将这些更改推送到我的舞台区域?

谢谢!

git git-pull git-push git-commit git-fork

10
推荐指数
2
解决办法
1万
查看次数

当git commit打开Nano时如何提交git的更改?

我是git的新手,正在尝试在Windows计算机上提交我的第一个更改。但是,当我输入内容时,$git commit它会转到与任何在线教程或Pro Git中提到的屏幕不同的屏幕。同样,没有在线搜索也可以解释如何使用此屏幕。

屏幕看起来像这样: 我遇到麻烦的git commit屏幕

我已经尝试过键盘上的每个键,但是似乎没有任何实际操作。此外,屏幕底部的绿色所有这些小的帮助选项似乎都在发出命令,但是当我按下按钮时,它们会显示出来,只需将它们键入到提交消息中即可。这些帮助选项是什么,我如何使用它们?

其他人似乎都在使用名为“ vim”的东西,我相信我选择在安装Git时不安装它,因为我认为Windows控制台很好。

那么,我该如何实际提交?屏幕底部的绿色命令是什么?谢谢!

git nano git-commit

10
推荐指数
4
解决办法
3736
查看次数