相关疑难解决方法(0)

在Git存储库中查找并恢复已删除的文件

说我在Git存储库中.我删除了一个文件并提交了更改.我继续工作,并做了一些更多的提交.然后,我发现我需要恢复该文件.

我知道我可以使用签出文件git checkout HEAD^ foo.bar,但我真的不知道该文件何时被删除.

  1. 找到删除给定文件名的提交的最快方法是什么?
  2. 将该文件恢复到我的工作副本的最简单方法是什么?

我希望我不必手动浏览我的日志,检查整个项目的给定SHA,然后手动将该文件复制到我原来的项目结帐中.

git file-io git-checkout

2716
推荐指数
20
解决办法
93万
查看次数

Git别名与位置参数

基本上我想尝试别名:

git files 9fa3
Run Code Online (Sandbox Code Playgroud)

...执行命令:

git diff --name-status 9fa3^ 9fa3
Run Code Online (Sandbox Code Playgroud)

但是git似乎没有将位置参数传递给alias命令.我试过了:

[alias]
    files = "!git diff --name-status $1^ $1"
    files = "!git diff --name-status {1}^ {1}"
Run Code Online (Sandbox Code Playgroud)

......以及其他一些但不起作用.

退化的情况是:

$ git echo_reverse_these_params a b c d e
e d c b a
Run Code Online (Sandbox Code Playgroud)

......我怎么能做这个工作?

git parameters alias command position

244
推荐指数
7
解决办法
5万
查看次数

在git中打印给定提交的提交消息

我需要一个管道命令来打印一个给定提交的提交消息 - 仅此而已.

git commit-message

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

切换git分支没有文件签出

是否可以在git切换到另一个分支而不检查所有文件?切换分支后,我需要删除所有文件,重新生成它们,提交并切换回来.因此,检出文件只是浪费时间(并且有大约14000个文件 - 这是一个很长的操作).

为了使一切清楚:

我需要所有这些来上传文档到github.

我有gh-pages分支的回购.当我在本地重建文档时,我将其复制到repo目录,提交并推送到github.但我并不高兴,因为我在本地有两份文件.我决定创建空分支并在提交后切换为空并删除文件.但转回来是一个漫长的操作 - 所以我问了这个问题.

我知道我可以离开gh-pages分支并删除文件,但我不喜欢脏工作树)

git branch git-checkout

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

如何使用'git rebase -i'来重新分支分支中的所有更改?

这是一个例子:

>git status
# On branch master
nothing to commit (working directory clean)
>git checkout -b test-branch
>vi test.c
>git add test.c
>git commit -m "modified test.c"
>vi README
>git add README
>git commit -m "modified README"
Run Code Online (Sandbox Code Playgroud)

现在我想做一个' git rebase -i',这将让我为这个分支重新提交所有提交.有没有像' git rebase -i HEAD~MASTER'或类似的东西.我想我可以做' git rebase -i HEAD~2',但我真的不想计算已经提交了多少次提交.我也可以这样做git rebase -i sha1但我不想通过git log来查找第一个提交sha1.有任何想法吗?

git

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

git在一个命令中添加和提交单个跟踪文件

我正在寻找相当于git commit -am "blah blah"但只有一个文件.如果我尝试:

git commit my.file -am "blah blah"
Run Code Online (Sandbox Code Playgroud)

我明白了:

fatal: Paths with -a does not make sense.
Run Code Online (Sandbox Code Playgroud)

我环顾四周,但我只能找到建议使用别名的解决方案(例如这个),但即使是那些似乎也不能修改,因为我需要传递一个参数.我是否必须通过shell调用git

似乎应该有一个更简单的选择,我认为这将是非常常见的.现在我坚持:

git add my.file
git commit -m "blah blah"
Run Code Online (Sandbox Code Playgroud)

git alias

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