相关疑难解决方法(0)

查看未发布的Git提交

如何查看我所做的任何尚未推送到远程存储库的本地提交?偶尔git status会打印出我的分支是X提前提交origin/master,但并非总是如此.

这是我安装Git的错误,还是我错过了什么?

git git-diff git-log

1649
推荐指数
18
解决办法
75万
查看次数

主分支和'起源/主人'分歧,如何'分散'分支'?

不知何故,我的主人和我的起源/主人分支已经分道扬.. 我实际上不希望它们分歧.如何查看这些差异并"合并"它们?

git branch

882
推荐指数
9
解决办法
66万
查看次数

Git log只能获取特定分支的提交

我想列出仅属于特定分支的所有提交.

通过以下内容,它列出了分支中的所有提交,但也列出了父(主)的提交

git log mybranch
Run Code Online (Sandbox Code Playgroud)

我找到的另一个选项是排除master可以访问的提交并给我我想要的东西,但我想避免需要知道其他分支名称.

git log mybranch --not master
Run Code Online (Sandbox Code Playgroud)

我试图使用git for-each-ref,但它也列出了mybranch所以实际上它排除了所有:

git log mybranch --not $(git for-each-ref --format '^%(refname:short)' refs/heads/)
Run Code Online (Sandbox Code Playgroud)

更新:

我正在测试我刚才发现的一个新选项,直到现在看来这可能是我想要的:

git log --walk-reflogs mybranch
Run Code Online (Sandbox Code Playgroud)

更新(2013-02-13T15:08):

--walk-reflogs选项很好,但我检查了reflogs是否到期(默认为90天,gc.reflogExpire).

我想我找到了我想要的答案:

git log mybranch --not $(git for-each-ref --format='%(refname)' refs/heads/ | grep -v "refs/heads/mybranch")
Run Code Online (Sandbox Code Playgroud)

我只是从可用分支列表中删除当前分支,并使用该列表从日志中排除.这样我只能获得mybranch才能达到的提交.

git

194
推荐指数
7
解决办法
14万
查看次数

git:拉动后如何区分更改的文件与以前的版本?

当我运行"git pull"时,我经常想知道文件的最后一个版本和新文件之间发生了什么变化.假设我想知道其他人对特定文件的承诺.

怎么做的?

我假设它是"git diff",其中包含commit x与commit y的一些参数,但我似乎无法获得语法.我还发现"git log"有点令人困惑,我不知道在哪里可以获得我最新版本文件的提交ID与新文件的提交ID.

git

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

显示自分支创建以来的提交

有没有办法只看到git log分支创建后添加的提交或其他命令?

usage: git log [<options>] [<since>..<until>] [[--] <path>...]
   or: git show [options] <object>...

    --quiet               suppress diff output
    --source              show source
    --decorate[=...]      decorate options
Run Code Online (Sandbox Code Playgroud)

git git-log

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

预览Git推送

如何查看哪些提交实际上将被推送到远程存储库?

据我所知,每当我从远程存储库中提取master时,即使它们是空的,也可能会生成提交.

即使没有任何东西可以推动,这也会导致本地主人"前进".

现在,如果我尝试(来自主人):

git cherry origin master
Run Code Online (Sandbox Code Playgroud)

我知道将要推动什么,虽然这也显示了我已经推动的一些提交.有没有办法只显示要推送的新内容?

git push

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

找到两个git存储库之间的差异

我已经在Github上分叉了一个项目的git存储库并对它进行了自己的更改.我想在我的存储库和我分叉的原始存储库之间找到差异.有人能告诉我git命令来获得这种差异吗?我需要提交差异进行审核.

原始存储库:

git://github.com/apache/hive.git
Run Code Online (Sandbox Code Playgroud)

我的存储库:

git@github.com:prafullat/hive.git
Run Code Online (Sandbox Code Playgroud)

以下是我的详细信息 .git/config

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:prafullat/hive.git
[remote "mirror"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git://github.com/apache/hive.git
Run Code Online (Sandbox Code Playgroud)

我尝试查看有关同一主题的其他已发布的问题,但无法使其发挥作用.

任何帮助将受到高度赞赏.

git

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

git:如何查看提交到单个分支

一位同事从大师那里创建了一个本地分支('branchA'),做了一些工作,推动了它,在master中合并,做了一些工作并再次推送它.同时,其他同事一直在研究其他分支机构并将它们合并到掌握之中.

现在我需要拉动branchA来检查它.所以我做了一个git pull,git checkout -b branchA origin/branchA这很好.但是所有命令(git diff/log/show)都显示了repo中所有分支的提交.

如何查看对branchA所做的所有提交的差异对照创建它的master版本?

另外,我git diff如何针对master的当前HEAD进行branchA,但是只能查看branchA中更改的文件?

git

11
推荐指数
1
解决办法
3421
查看次数

如何在 VsCode 中突出显示当前分支的更改?

VsCode 用绿色突出显示尚未提交到 git 存储库的代码行(左侧约 2px 垂直条纹)。

这非常方便,但我喜欢这样做git add . && git commit -m "Save"来保存我的进度。所以这个突出显示会下降。

我在自己的分支中进行所有更改。VsCode 有没有办法突出显示当前分支中已修改的代码行?

git visual-studio-code

11
推荐指数
1
解决办法
1181
查看次数

git如何处理合并中的提交?

我无法理解git merge在合并过程创建的提交方面是如何工作的.我已经阅读了pro git和git社区书中的相关章节,但我仍然感到困惑.

考虑这种情况:我有一个"origin"git repo:

          master
            |
a0--a1--a2--a3
  \
   -b0--b1
         |
      branch2
Run Code Online (Sandbox Code Playgroud)

我将这个repo克隆到本地仓库,然后只在本地仓库上工作.在branch2中,我做了一个"git merge master".现在我的本地仓库看起来像这样:

     master / origin/master
            |
a0--a1--a2--a3
  \           \
   -b0--b1-----merge
         |       |
  origin/branch2 |    
              branch2
Run Code Online (Sandbox Code Playgroud)

因此合并在"b1"提交之后创建了1个提交"merge".branch2的"git log"显示了预期的图形:

> git log branch2 --graph --pretty=oneline --decorate
*   a7b69fc6759e1dd5463bab379ce101a6ad026c7b (HEAD, branch2) Merge branch 'master' into branch2
|\  
| * 482e4026f05e33395a9fc3c87f50a746f692406a (origin/master, origin/HEAD, master) a3
| * 8de57bdea2d316073af3b7055f8c28c56004ce94 a2
| * 1e991047996aad269f2c01b9a0b9a7d8293096a1 a1
* | 99955f66843df51fb9d40c7797156c32cad57415 (origin/branch2) b1
* | 30ca9b6363558322f2bb7810d75cda0d9c2ba3e0 b0
|/  
* 76a7c6d0eb54a9580841115ff2c3429360ab2ac9 a0
Run Code Online (Sandbox Code Playgroud)

另外,如果我在当前头之前进行一次提交,我会按预期进入b1提交.(按照图中的branch2行返回1提交)

> git log branch2~ …
Run Code Online (Sandbox Code Playgroud)

git merge branch graph commit

6
推荐指数
1
解决办法
496
查看次数

与'git status'命令相反

我使用该git status命令找出我在git工作目录中本地更改的内容.但这个命令是否存在"相反"?

我的意思是我想知道其他人已经检查了我的远程/跟踪分支(我不确定远程分支是否与跟踪分支相同,在git中)但这些更改不在我的工作目录中.

git

5
推荐指数
1
解决办法
1513
查看次数

如何识别需要在git中合并的分支

我制作了很多bugfix和功能分支,最后将它们全部合并到一个候选版本(rc)中.但是当我测试rc时,我不确定我是否已经合并了所有分支机构.如何找出缺少哪些分支?

我试过gitk,但它似乎只显示已经合并在我所在的分支中的分支.但我对未合并的分支感兴趣.

在github("网络")上有一个很好的显示所有分支,但它总是落后,所以它没有那么有用.

git merge branch

4
推荐指数
1
解决办法
150
查看次数

标签 统计

git ×12

branch ×3

git-log ×2

merge ×2

commit ×1

git-diff ×1

graph ×1

push ×1

visual-studio-code ×1