我在Git中有一个存储库.我做了一个分支,然后对主人和分支做了一些改变.
然后,几十次提交之后,我意识到分支处于比主设备好得多的状态,所以我希望分支"成为"主设备并忽略主设备上的更改.
我无法合并它,因为我不想在master上保留更改.我该怎么办?
额外:在这种情况下,'old'主服务器已经被push转到另一个存储库,例如GitHub.这怎么改变了?
不知何故,我的主人和我的起源/主人分支已经分道扬.. 我实际上不希望它们分歧.如何查看这些差异并"合并"它们?
我有master跟踪远程分支的分支origin/master.
我想将它们重命名为master-old本地和远程.那可能吗?对于跟踪的其他用户origin/master(以及经常更新其本地master分支的用户git pull),重命名远程分支后会发生什么?他们git pull仍然会工作还是会抛出一个它再也找不到的错误origin/master?
然后,继续,我想创建一个新的master分支(本地和远程).再说一次,在我这样做之后,如果其他用户这样做会发生什么git pull呢?
我想这一切都会带来很多麻烦.是否有一种干净的方式来获得我想要的东西?或者我应该保持master原样,并创建一个新的分支,master-new然后继续在那里工作?
我有一个带有2个分支的git存储库:master和test.
主分支和测试分支之间存在差异.
两个分支都承诺所有更改.
如果我做:
git checkout master
git diff test
出现一个充满变化的屏幕,显示出差异.我想合并测试分支中的更改,所以:
git merge test
但得到消息"已经是最新的"
但是,检查每个不同分支下的文件清楚地显示了差异.
这里有什么问题,如何解决?
我有一个存储库,它有一些不好的提交(本例中为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)
如何让远程仓库获取本地仓库的当前状态?
我正在尝试更新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存储库的某些文件损坏.运行时,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生成一个只有正确对象的新包.
你能否告诉我如何修复我的存储库?
我有一个分支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来跟踪我的文档乳胶来源.我想让master分支中包含适合最终用户发布的文档,所以当有人需要时,我可以切换到master分支,编译并分发文档.
当手册需要重大更新时,我会创建新分支.但是,当手册获得批准后,它需要合并回主人手中.当从分支合并到master时,我想将一些命令传递给Git说:"忘记合并,只需使用分支中的文件覆盖master中的文件." 有没有办法做到这一点?具体来说,我想避免每次都打开合并工具.提前致谢.
我刚开始一个新项目,我正在使用GitLab和SourceTree.我创建了一个分支(origin\master),但是我错误地将这个分支用于我的开发,所以我将我的前几个更改推送到了这个分支.现在我了解到这个分支实际上应该有生产版本,并且应该使用origin\develop分支进行开发.
有没有什么办法可以将master分支重命名为origin\develop,并以某种方式使用原始版本的应用程序创建一个新的origin\master分支?
我是项目中唯一的开发人员,因此不会影响任何人.如果可能的话,如果你可以解释如何在SourceTree中这样做,因为我不使用命令行git.我对SourceTree比较熟悉.
git ×10
merge ×3
branch ×2
corruption ×1
dvcs ×1
git-branch ×1
github ×1
gitlab ×1
sourcetree ×1