相关疑难解决方法(0)

使当前的Git分支成为主分支

我在Git中有一个存储库.我做了一个分支,然后对主人和分支做了一些改变.

然后,几十次提交之后,我意识到分支处于比主设备好得多的状态,所以我希望分支"成为"主设备并忽略主设备上的更改.

我无法合并它,因为我不想在master上保留更改.我该怎么办?

额外:在这种情况下,'old'主服务器已经被push转到另一个存储库,例如GitHub.这怎么改变了?

git

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

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

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

git branch

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

为本地和远程Git存储库重命名master分支

我有master跟踪远程分支的分支origin/master.

我想将它们重命名为master-old本地和远程.那可能吗?对于跟踪的其他用户origin/master(以及经常更新其本地master分支的用户git pull),重命名远程分支后会发生什么?他们git pull仍然会工作还是会抛出一个它再也找不到的错误origin/master

然后,继续,我想创建一个新的master分支(本地和远程).再说一次,在我这样做之后,如果其他用户这样做会发生什么git pull呢?

我想这一切都会带来很多麻烦.是否有一种干净的方式来获得我想要的东西?或者我应该保持master原样,并创建一个新的分支,master-new然后继续在那里工作?

git git-branch

802
推荐指数
7
解决办法
28万
查看次数

尽管存在差异,Git合并报告"已经是最新的"

我有一个带有2个分支的git存储库:master和test.

主分支和测试分支之间存在差异.

两个分支都承诺所有更改.

如果我做:

git checkout master
git diff test

出现一个充满变化的屏幕,显示出差异.我想合并测试分支中的更改,所以:

git merge test

但得到消息"已经是最新的"

但是,检查每个不同分支下的文件清楚地显示了差异.

这里有什么问题,如何解决?

git merge

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

Git reset --hard和一个远程存储库

我有一个存储库,它有一些不好的提交(本例中为D,E和F).

ABCDEF主和原点/主

我专门用一个修改了本地存储库git reset --hard.我在重置之前选了一个分支,所以现在我有一个看起来像的回购:

A-B-C master  
     \ D-E-F old_master

A-B-C-D-E-F origin/master
Run Code Online (Sandbox Code Playgroud)

现在我需要这些糟糕提交的一些部分,所以我选择了我需要的位并做了一些新的提交,所以现在我在本地有以下内容:

A-B-C-G-H master
     \ D-E-F old_master
Run Code Online (Sandbox Code Playgroud)

现在我想把这种状态推到远程仓库.但是,当我尝试做一个git pushGit时,礼貌地给我刷掉了:

$ git push origin +master:master --force  
Total 0 (delta 0), reused 0 (delta 0)  
error: denying non-fast forward refs/heads/master (you should pull first)  
To git@git.example.com:myrepo.git  
! [remote rejected] master -> master (non-fast forward)  
error: failed to push some refs to 'git@git.example.com:myrepo.git'  
Run Code Online (Sandbox Code Playgroud)

如何让远程仓库获取本地仓库的当前状态?

git

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

Git push不会做任何事情(一切都是最新的)

我正在尝试更新GitHub上的Git存储库.我做了一些更改,添加了它们,然后尝试做了一个git push.回复告诉我一切都是最新的,但显然不是.

git remote show origin
Run Code Online (Sandbox Code Playgroud)

用我期望的存储库响应.

为什么当存在在存储库中看不到的本​​地提交时,Git告诉我存储库是最新的?

  [searchgraph]  git status
# On branch develop
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       Capfile
#       config/deploy.rb
nothing added to commit but untracked files present (use "git add" to track)

  [searchgraph]  git add .

  [searchgraph]  git status
# On branch develop
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   Capfile
# …
Run Code Online (Sandbox Code Playgroud)

git dvcs

95
推荐指数
6
解决办法
14万
查看次数

如何恢复因硬盘故障而损坏的Git对象?

我遇到了硬盘故障导致Git存储库的某些文件损坏.运行时,git fsck --full我得到以下输出:

error: .git/objects/pack/pack-6863e0a0e4b4ded6090fac5d12eba6ca7346b19c.pack SHA1 checksum mismatch
error: index CRC mismatch for object 6c8cae4994b5ec7891ccb1527d30634997a978ee from .git/objects/pack/pack-6863e0a0e4b4ded6090fac5d12eba6ca7346b19c.pack at offset 97824129
error: inflate: data stream error (invalid code lengths set)
error: cannot unpack 6c8cae4994b5ec7891ccb1527d30634997a978ee from .git/objects/pack/pack-6863e0a0e4b4ded6090fac5d12eba6ca7346b19c.pack at offset 97824129
error: inflate: data stream error (invalid stored block lengths)
error: failed to read object 0dcf6723cc69cc7f91d4a7432d0f1a1f05e77eaa at offset 276988017 from .git/objects/pack/pack-6863e0a0e4b4ded6090fac5d12eba6ca7346b19c.pack
fatal: object 0dcf6723cc69cc7f91d4a7432d0f1a1f05e77eaa is corrupted
Run Code Online (Sandbox Code Playgroud)

我有存储库的备份,但包含包文件的唯一备份已经损坏了.所以我认为我必须找到一种方法从不同的备份中检索单个对象,并以某种方式指示Git生成一个只有正确对象的新包.

你能否告诉我如何修复我的存储库?

git corruption data-recovery

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

Git合并强制覆盖

我有一个分支demo,我需要与master分支合并.我可以使用以下命令获得所需的结果:

git pull origin demo
git checkout master
git pull origin master
git merge demo
git push origin master
Run Code Online (Sandbox Code Playgroud)

我唯一关心的是,如果有任何合并问题,我想告诉git覆盖master分支中的更改而不给我合并提示.因此,demo分支中的更改基本上应该自动覆盖master分支中的更改.

我环顾四周有多种选择,但我不想冒险合并.

git merge github

71
推荐指数
6
解决办法
14万
查看次数

Git:合并到master,同时自动选择用分支覆盖主文件

我正在使用Git来跟踪我的文档乳胶来源.我想让master分支中包含适合最终用户发布的文档,所以当有人需要时,我可以切换到master分支,编译并分发文档.

当手册需要重大更新时,我会创建新分支.但是,当手册获得批准后,它需要合并回主人手中.当从分支合并到master时,我想将一些命令传递给Git说:"忘记合并,只需使用分支中的文件覆盖master中的文件." 有没有办法做到这一点?具体来说,我想避免每次都打开合并工具.提前致谢.

git merge branch

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

GitLab重命名分支并从另一个重新开始

我刚开始一个新项目,我正在使用GitLab和SourceTree.我创建了一个分支(origin\master),但是我错误地将这个分支用于我的开发,所以我将我的前几个更改推送到了这个分支.现在我了解到这个分支实际上应该有生产版本,并且应该使用origin\develop分支进行开发.

有没有什么办法可以将master分支重命名为origin\develop,并以某种方式使用原始版本的应用程序创建一个新的origin\master分支?

我是项目中唯一的开发人员,因此不会影响任何人.如果可能的话,如果你可以解释如何在SourceTree中这样做,因为我不使用命令行git.我对SourceTree比较熟悉.

git gitlab atlassian-sourcetree sourcetree

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