相关疑难解决方法(0)

如何在git历史中grep(搜索)已提交的代码?

我过去的某个时候删除了文件或某些代码.我可以在内容中进行grep(不在提交消息中)吗?

一个非常糟糕的解决方案是grep日志:

git log -p | grep <pattern>
Run Code Online (Sandbox Code Playgroud)

但是,这不会立即返回提交哈希.我一直玩得git grep无济于事.

git diff grep

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

如何从另一个分支中获取一个文件

我正在使用git并在master分支上工作.这个分支有一个名为的文件app.js.

我有一个experiment分支,我做了一堆变更和大量的提交.现在我希望把做只对所有变化app.jsexperimentmaster分支.

我怎么做?

再一次,我不想合并.我只是想把所有的变化app.jsexperiment分支带到master分支.

git git-checkout

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

如何樱桃挑选多个提交

我有两个分支.提交a是一个头,而其他有b,c,d,ef之上a.我想移动c,d,ef第一支没有提交b.使用樱桃挑选很容易:结帐第一个分支樱桃 - 一个接一个c地挑选f第二个分支到第一个.但有没有办法挑选所有c- f一个命令?

这是场景的直观描述(感谢JJD):

在此输入图像描述

git git-rebase cherry-pick

779
推荐指数
11
解决办法
39万
查看次数

如何将提交从一个分支复制到另一个分支?

我的主人有两个分支:

  • v2.1 :(版本2)我已经工作了几个月
  • wss:我昨天创建的是为我的主人添加一个特定功能(在制作中)

有没有办法将昨天的提交从wss复制到v2.1?

git branching-and-merging

682
推荐指数
9
解决办法
53万
查看次数

如何轻松地将本地Git分支推送到具有不同名称的远程?

我一直想知道是否有一种简单的方法来推送和拉出具有不同名称的远程分支的本地分支,而不必始终指定这两个名称.

例如:

$ git clone myrepo.git
$ git checkout -b newb
$ ...
$ git commit -m "Some change"
$ git push origin newb:remote_branch_name
Run Code Online (Sandbox Code Playgroud)

现在如果有人更新remote_branch_name,我可以:

$ git pull
Run Code Online (Sandbox Code Playgroud)

一切都是合并/快进的.但是,如果我在当地的"newb"中进行更改,我不能:

$ git push
Run Code Online (Sandbox Code Playgroud)

相反,我必须:

% git push origin newb:remote_branch_name
Run Code Online (Sandbox Code Playgroud)

看起来有点傻.如果git-pull用于git-config branch.newb.merge确定从何处拉出,为什么不能git-push有类似的配置选项?有没有一个很好的捷径,或者我应该继续漫长的路?

git version-control git-push git-remote

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

根据Git,谁是"我们"谁是"他们"?

在Git rebase之后,在其他情况下,您可以在报告中找到我们标记为已删除的一些文件git status.根据Git,我们是谁?为什么?

它指的是我坐在这个分支上它是否适合我?或者它是指自己和在分支机构工作的人我反对?

git

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

什么是git快进?

这可能听起来像一个愚蠢的问题,但我找不到一个简单的答案.

是否可以假设快进意味着所有提交都在目标分支上重放并且HEAD设置为该分支上的最后一次提交?

git

87
推荐指数
3
解决办法
6万
查看次数

`git lfs fetch`、`git lfs fetch --all` 和 `git lfs pull` 之间有什么区别?

尽管已经使用git多年,但我发现git lfsgit Large File Storage)使用起来相当混乱,即使是在非常基础的水平上。有人可以解释一下这3个命令之间的区别吗?:

  1. git lfs fetch
  2. git lfs fetch --all
  3. git lfs pull

有关的:

  1. 从 git LFS 中提取所有文件

git git-lfs

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

引入 git switch 后 git checkout 还能做什么?

众所周知,git checkout is a very overloaded command. And I do understand that certain commands got introduced to distribute, e.g. to git switch.

在我使用以下命令之前:

$ git checkout <existing-branch>
$ git checkout <hash>
$ git checkout -b <new-branch-name>
Run Code Online (Sandbox Code Playgroud)

所以我想知道git switch介绍后,剩下的目的是什么git-checkout?这是一个已弃用的命令吗?

git git-checkout git-switch

19
推荐指数
1
解决办法
3547
查看次数

git - 提交中所有已更改但未删除的文件的列表

我正在调查git存储库.我想在每次提交中获取已更改文件的列表.

所以,我做的是通过命令访问每个提交

git reset --hard <commitId>
Run Code Online (Sandbox Code Playgroud)

然后,我用了

git show --pretty="format:" --name-only #{commitId}
Run Code Online (Sandbox Code Playgroud)

这个的问题是它提供了我不想要的commitId中的已删除文件.我也尝试过:

git ls-files 
Run Code Online (Sandbox Code Playgroud)

它不会返回已删除的文件,但是,它会返回所有现有文件的列表,这些文件是新的或在先前的提交中创建的.

例:

>commit 1
add "file1"
add "file2"

>commit 2
change "file1"

>commit 3
add "file3"
delete "file2"
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,我将访问每个提交.并且,如果我在提交1中,我想获得"file1"和"file2"的列表.如果我在提交2中,如果我在提交3中,我将获得"file1"和"file3".

任何想法?

git

9
推荐指数
3
解决办法
1148
查看次数