相关疑难解决方法(0)

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

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

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

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

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

git

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

如何从远程分支永久删除一些提交

我知道这是重写历史,这是糟糕的亚达亚达.

但是如何从远程分支中永久删除一些提交?

git

412
推荐指数
9
解决办法
29万
查看次数

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中编辑不正确的提交消息(我已推送)?

我想在历史记录中更深层次地修改提交消息,并且我已经推送了许多新的提交.

如何更改提交消息?可能吗?

git commit-message

150
推荐指数
5
解决办法
12万
查看次数

执行rebase后,Git提交在同一分支中重复

我理解Pro Git中关于风险的方案dev.作者基本上告诉你如何避免重复提交:

不要将已推送到公共存储库的提交重新绑定.

我将告诉你我的具体情况,因为我认为它不完全适合Pro Git场景,我仍然最终得到重复的提交.

假设我与当地同行有两个远程分支机构:

origin/master    origin/dev
|                |
master           dev
Run Code Online (Sandbox Code Playgroud)

所有四个分支包含相同的提交,我将开始开发origin/dev:

origin/master : C1 C2 C3 C4
master        : C1 C2 C3 C4

origin/dev    : C1 C2 C3 C4
dev           : C1 C2 C3 C4
Run Code Online (Sandbox Code Playgroud)

经过几次提交后,我将更改推送到master:

origin/master : C1 C2 C3 C4
master        : C1 C2 C3 C4

origin/dev    : C1 C2 C3 C4 C5 C6  # (2) git push
dev           : C1 C2 C3 C4 C5 C6  # (1) git …
Run Code Online (Sandbox Code Playgroud)

git branch rebase

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

意外推送提交:更改git提交消息

在我的本地仓库中,我有一个提交错误的提交消息.

我已经发布了错误的提交消息git push.

现在远程仓库(GitHub托管)也有不正确的提交消息.

我已经尝试了git commit --amend,但发现在这种情况下它对我不起作用,因为我已经做了额外的提交,因为不正确的提交.

你会如何解决这种情况?

git git-amend git-commit

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

如何在git中备份私有分支

我有一个本地分支,用于git中的日常开发工作.我的工作流程是:

  1. 在local_branch上做一些事情,提交
  2. 获取origin/master
  3. 重新定位local_branch以赶上来自origin/master的新东西

这一切都运行正常,但我遇到的大多数建议都说不应该"推"私人分支,定期执行rebase.

这里的问题是,在这种情况下,本地分支不会备份到服务器,保存工作的唯一方法是将其合并回"pushable"分支(即origin/master)

在这种情况下,您对工作流程的建议是什么?

谢谢!

更新:我意识到我有一个原始要求(避免使用外部实用程序)是不必要的限制.

我目前的解决方案是将所有存储库存储在云同步文件夹中 - 这样我就可以免费获得备份.

git merge workflow rebase dropbox

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

Git在修改提交后阻止推送

通常,我只是跑

git add file
git commit
git push
Run Code Online (Sandbox Code Playgroud)

但如果我推送之前修改了提交(with git commit --amend),则下一次推送失败

hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)

如何让git在不合并分支的情况下推送更改?我只有一个分支(master),我是唯一一个使用这个回购的人,为什么这么说呢?

git branch -a:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

编辑:使用gitk HEAD @{u},我看到我有2个分支,一个用原始提交,另一个用修改提交.

git git-push git-amend git-commit

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

在Eclipse/EGit中是否有一种编辑未提交/本地提交的提交消息的方法?

使用Eclipse/EGit如何编辑我在本地进行的提交的提交消息,但尚未推送到存储库?

eclipse git egit

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

如何在做'git commit --amend'之后推送回购

我做了一个提交并推动回购.后来我通过使用修改了提交消息git commit --amend,在弹出窗口中我输入了新消息.我可以通过看到新消息git log.经过这一切,我的git status节目就像这样.我不知道如何将这个变化推向回购.

On branch master
Your branch and `origin/master` have diverged,
and have 1 and 1 different commit(s) each, respectively.
Run Code Online (Sandbox Code Playgroud)

期待一个可行的解决方案.

git git-amend git-commit

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