我过去的某个时候删除了文件或某些代码.我可以在内容中进行grep(不在提交消息中)吗?
一个非常糟糕的解决方案是grep日志:
git log -p | grep <pattern>
Run Code Online (Sandbox Code Playgroud)
但是,这不会立即返回提交哈希.我一直玩得git grep无济于事.
我正在使用git并在master分支上工作.这个分支有一个名为的文件app.js.
我有一个experiment分支,我做了一堆变更和大量的提交.现在我希望把做只对所有变化app.js从experiment到master分支.
我怎么做?
再一次,我不想合并.我只是想把所有的变化app.js从experiment分支带到master分支.
我有两个分支.提交a是一个头,而其他有b,c,d,e和f之上a.我想移动c,d,e和f第一支没有提交b.使用樱桃挑选很容易:结帐第一个分支樱桃 - 一个接一个c地挑选f第二个分支到第一个.但有没有办法挑选所有c- f一个命令?
这是场景的直观描述(感谢JJD):

我的主人有两个分支:
有没有办法将昨天的提交从wss复制到v2.1?
我一直想知道是否有一种简单的方法来推送和拉出具有不同名称的远程分支的本地分支,而不必始终指定这两个名称.
例如:
$ 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 rebase之后,在其他情况下,您可以在报告中找到我们标记为已删除的一些文件git status.根据Git,我们是谁?为什么?
它指的是我坐在这个分支上它是否适合我?或者它是指自己和在分支机构工作的人我反对?
这可能听起来像一个愚蠢的问题,但我找不到一个简单的答案.
是否可以假设快进意味着所有提交都在目标分支上重放并且HEAD设置为该分支上的最后一次提交?
尽管已经使用git多年,但我发现git lfs(git Large File Storage)使用起来相当混乱,即使是在非常基础的水平上。有人可以解释一下这3个命令之间的区别吗?:
git lfs fetchgit lfs fetch --allgit lfs pull有关的:
众所周知,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 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 ×10
git-checkout ×2
cherry-pick ×1
diff ×1
git-lfs ×1
git-push ×1
git-rebase ×1
git-remote ×1
git-switch ×1
grep ×1